CMAKE 库未链接
Posted
技术标签:
【中文标题】CMAKE 库未链接【英文标题】:CMAKE library not linking 【发布时间】:2011-11-18 22:45:25 【问题描述】:为什么这段代码没有产生任何东西?
link_directories($CMAKE_SOURCE_DIR/libs/mylib1)
message("DIR: $LINK_DIRECTORIES")
我在 Windows 上遇到问题,虽然我做了link_directories()
,但链接时没有-L...
标志。我确实按照文档建议在link_directories
命令之后创建了目标。
【问题讨论】:
请提供完整的 CMakeLists.txt 并描述您的文件夹结构 - 真的不清楚您的问题是什么。 【参考方案1】:通过使用“link_directories($CMAKE_SOURCE_DIR/libs/mylib1)”,您是在告诉 CMake 告诉链接器在需要链接到带有一个简单的名称,如“png”或“zlib”。
但是,甚至不再推荐使用 link_directories。我们始终建议使用 target_link_libraries 以及要链接到的库文件的完整路径名。然后 CMake 会为您在所有不同平台上为链接器安排所有 -L 和 -l 参数。
如果您需要更多帮助,请在您的问题中添加更多信息。有点不清楚你想要做什么,或者你期待什么。
【讨论】:
【参考方案2】:因为 LINK_DIRECTORIES 不是变量,而是目录属性。您可以通过以下方式获取:
get_directory_property(OUT_VAR LINK_DIRECTORIES)
message(STATUS "DIR: $OUT_VAR")
见documentation。
【讨论】:
【参考方案3】:我不确定您要实现的总体目标是什么。
target_link_libraries 会做得更好吗?
target_link_libraries( TARGET LIB1 LIB2 LIB3 ... )
【讨论】:
以上是关于CMAKE 库未链接的主要内容,如果未能解决你的问题,请参考以下文章