创建共享对象

扫码查看

我有三个文件:
lib.c lib.h=>它们应该构建为.so文件
client.c=>这应该作为可执行文件构建。
在client.c中,我包含lib.h文件,以便获取lib.c下定义的函数的声明。
有人能告诉我应该使用的确切的cmakelists文件,以便源区域与cmake的临时文件以及在单独的构建目录和二进制目录中生成的二进制文件和库(如果是Windows,则为.dlls)保持整洁吗?

最佳答案

默认情况下,cmake在单独的生成目录上生成(我没有测试此示例):

PROJECT(myproject)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

SET(mylibSRCS lib.c)
SET(myprogSRCS client.c)

ADD_LIBRARY(mylib ${mylibSRCS})
ADD_EXECUTABLE(myprog ${myprogSRCS})

TARGET_LINK_LIBRARIES(myprog mylib)

你需要:
mkdir build
cd build
cmake ..
make

一切都在建设中。
更新:正如下面@chryss提到的,如果您希望生成.so文件,命令应该是:
ADD_LIBRARY(mylib SHARED ${mylibSRCS})

关于创建共享对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11293572/

10-12 00:33
查看更多