我们希望使用CMAKE
系统构建共享库。它类似于:
lib/
CMakeLists.txt
src/
CMakeLists.txt
module/
CMakeLists.txt
module1.c
foo.c
module1.c
需要一些标准的共享库,例如librt
。我们有
add_library(module module1.c)
target_link_libraries(module rt)
在module/
子目录中。但仍然不知道来自librt
的错误。
答案 0 :(得分:8)
如果librt与-lrt链接,那么在CMake中你可以用这种方式链接它:
target_link_libraries(module -lrt)
答案 1 :(得分:4)
实际上你在做什么应该有效。如果编译器找不到库,则可能根本不在标准库路径中。您可以使用以下帮助为编译器指定不同的link_directories
(-L/some/path
参数。)
cmake --help-command link_directories
调试CMake构建时可以做的另一个有用的事情是打印出运行编译器的命令:
make VERBOSE=1
然后,您可以执行命令并手动定制它们。之后,需要修改CMAKE_C_FLAGS
/ include_directories
/ link_directories