CMAKE链接到系统库

时间:2011-10-09 10:52:32

标签: c++ c cmake

我们希望使用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的错误。

2 个答案:

答案 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