Linux make 无法链接到 Boost 非标头库
Posted
技术标签:
【中文标题】Linux make 无法链接到 Boost 非标头库【英文标题】:Linux make can't link against Boost non-header only libraries 【发布时间】:2011-08-08 17:10:36 【问题描述】:我成功切换到 Linux,我真的开始爱上它了。除了我无法将代码链接到仅非标头的 Boost 库。
我已采取的步骤:
-
在终端运行
sudo apt-get install libboost.*-dev
以安装 Boost 库
让 CMake 生成我的 make 文件并找到 Boost 库,就像我在 Windows 上所做的那样。
运行make
进行编译。
相同的代码在 Windows 下使用 Microsoft Visual C++ 编译和链接良好。
更多信息
Console Output Source我还需要做什么?
【问题讨论】:
两个链接都已损坏 (404)。你能以某种方式补救吗? 【参考方案1】:从您的输出和 CMakeFiles 来看,您似乎没有将代码链接到 Boost 文件系统库。
也就是说,
target_link_libraries(RCMeta $Boost_FILESYSTEM_LIBRARY $Boost_REGEX_LIBRARY)
注意:我可能为该库设置了错误的变量名,您可能需要仔细检查它。
您也可以使用通用的$Boost_LIBRARIES
变量,
target_link_libraries(RCMeta $Boost_LIBRARIES)
用于您的 RCMeta 库。
【讨论】:
我理解你是否正确,我必须将 RCMeta(静态库)链接到 boost 而不是可执行文件? @Mythli:我认为不可能编译/链接库。 几乎像你说的那样工作。学到了新东西(&L)。非常感谢! "CMakeFiles" 是什么意思?你的意思是“CMake 文件” 吗?还是“CMakeLists.txt”?还是别的什么?以上是关于Linux make 无法链接到 Boost 非标头库的主要内容,如果未能解决你的问题,请参考以下文章
使用 boost::make_shared 创建矢量元素无法正常工作