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 库未链接的主要内容,如果未能解决你的问题,请参考以下文章

Android Tensorflow Lite C++ .SO 库未在运行时链接

库未与 0.41 版本的 react-native 链接

Xcode Cocos-2dx 库未找到错误

opencv静态链接库cmake链接顺序问题

CMake - 更改共享库链接选项

如何提供支持静态链接的 cmake 包(又名 Config.cmake)