我有三个文件:
lib.c lib.h => 它们应该被构建为 .so 文件
client.c => 这应该被构建为可执行文件。
在 client.c 中,我包含 lib.h 文件,以便获取 lib.c 下定义的函数的声明
谁能告诉我我应该使用的确切 CMakeLists 文件,以便源区域不会被 Cmake 的临时文件和二进制文件和库(我相信是 windows 的情况下为 .dll)在单独的构建和二进制目录中生成?
最佳答案
此解决方案不会创建 .so
文件,而是创建一个 cmake 等效文件,以便进一步包含在 cmake 中。
我正在寻找一种解决方案,将提供与此等效的解决方案:
g++ -shared -Wl,-soname,plugin_lib.so.1 -o plugin_lib.so plugin_lib.o
这将生成一个 plugin_lib.so
,可以在运行时使用 dlopen 动态加载。
解决方案缺少“共享”选项,如下所示:
ADD_LIBRARY(mylib SHARED ${mylibSRCS})
关于build - cmake 创建一个共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11293572/