【发布时间】:2016-08-27 16:53:00
【问题描述】:
我想从 Linux C++ .so 共享对象库中导出全局 C++ 函数,并在 Linux C++ .out 应用程序中使用这些函数。
我查看了一些在 Linux 开发环境中通常如何完成此操作的示例。但是我正在使用 Visual Studio Linux 项目和新的 Visual C++ for Linux Development 扩展。我相信我看到的示例中的许多步骤都将由 Visual Studio 构建系统处理,因此在这种情况下情况似乎有些不同。
我在 Visual Studio 中创建了两个 Linux C++ 项目,一个是我在属性中更改为 .so 的空项目和一个控制台应用程序。我已经在控制台应用程序中引用了共享对象库。
共享对象库项目有两个文件,functions.h 和 functions.cpp。
函数.h
#pragma once
void Function_01();
functions.cpp
#include functions.h
extern "C" void Function_01() {
return 0;
}
我已将functions.h 文件添加到消费控制台应用程序...
#include <cstdio>
#include "functions.h"
int main()
{
Function_01();
return 0;
}
也许导出全局函数看起来很奇怪,但对于我的问题,这似乎是最自然的方法,我打算在库构建和链接后将函数包装在命名空间中。
我做错了什么?如何链接这些 Visual C++ for Linux 开发项目并使用从共享对象库导出的函数?
【问题讨论】:
标签: c++ linux visual-studio visual-c++ shared-libraries