我们想用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中得到东西的错误仍然未知。

最佳答案

实际上,您正在做的事情应该可以工作。如果编译器找不到该库,则它可能根本不在标准库路径中。您可以使用以下帮助来指定其他link_directories(编译器的-L/some/path参数)。

cmake --help-command link_directories

在调试CMake构建时,您可以做的另一件事是打印出运行编译器的命令:
make VERBOSE=1

然后,您可以接受命令并手动调整它们以使其正常工作。之后,只需修改CMAKE_C_FLAGS/include_directories/link_directories

关于c++ - CMAKE链接到系统库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7702993/

10-11 19:39