CMAKE库没有链接

时间:2011-11-18 22:45:26

标签: c++ c gcc cmake

为什么这段代码不能产生任何东西?

link_directories(${CMAKE_SOURCE_DIR}/libs/mylib1)
message("DIR: ${LINK_DIRECTORIES}")

我在Windows上遇到问题虽然我link_directories()但链接时没有-L...标记。我建议在link_directories命令之后创建目标,如文档所示。

3 个答案:

答案 0 :(得分:3)

使用" link_directories($ {CMAKE_SOURCE_DIR} / libs / mylib1)"你告诉CMake告诉链接器在" $ {CMAKE_SOURCE_DIR} / libs / mylib1"中查找库。当需要链接到具有普通名称的库时,如在" png"或" zlib"。

然而,甚至不建议使用link_directories。我们始终建议使用target_link_libraries以及要链接到的库文件的完整路径名。然后,CMake负责为所有不同平台上的链接器安排所有-L和-l参数。

如果您需要更多帮助,请在问题中添加更多信息。它有点不清楚你想要做什么,或者你期待什么。

答案 1 :(得分:2)

因为LINK_DIRECTORIES不是变量,而是目录属性。你可以这样获得它:

get_directory_property(OUT_VAR LINK_DIRECTORIES)
message(STATUS "DIR: ${OUT_VAR}")

请参阅documentation

答案 2 :(得分:1)

我不确定你想要实现的目标。

target_link_libraries会做更好的整体工作吗?

target_link_libraries( TARGET LIB1 LIB2 LIB3 ... )