Cmake - 不创建动态链接

时间:2015-05-21 20:33:13

标签: cmake makefile

我正在编译的项目没有将我的共享对象文件链接到主程序。这可以通过对我的可执行文件执行ldd命令并看到它libba.so => not found来确认。

在我的CMakeLists.txt文件中,我有:

add_library(ba SHARED "/usr/local/include/libba.cpp" "/usr/local/include/libba.h")
target_link_libraries(ba (list of other libraries that link to ba))
set_target_properties(ba PROPERTIES LINK_INTERFACE_LIBRARIES "" LINK_FLAGS "${NO_UNDEFINED}")
add_executable(run "/usr/local/main/run.cpp")
target_link_libraries(run ba)

1 个答案:

答案 0 :(得分:1)

ldd报告运行时链接器可以找到的内容。

如果您在输出中看到libba.so,则表示二进制 链接到库。

未找到""表示运行时链接器无法找到该库(即您没有将其安装在正常的系统位置)。

因此,您可以将库安装到系统位置,配置运行时链接程序以了解自定义位置,静态链接应用程序,或使用二进制文件中的rpath让它运行-time链接其他地方来寻找它自己。