为什么这段代码不能产生任何东西?
link_directories(${CMAKE_SOURCE_DIR}/libs/mylib1)
message("DIR: ${LINK_DIRECTORIES}")
我在Windows上遇到问题虽然我link_directories()
但链接时没有-L...
标记。我建议在link_directories
命令之后创建目标,如文档所示。
答案 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 ... )