如何让 CMake 找到我的替代 Boost 安装?

新手上路,请多包涵

我已经在 /usr/local 中安装了最新版本的 Boost(包含在 /usr/local/include/boost 和库中 /usr/local/lib/boost ),我现在正在尝试从源安装 Wt但 CMake(2.6 版)似乎找不到 Boost 安装。它试图提供有关设置 BOOST_DIR 和 Boost_LIBRARYDIR 的有用建议,但我无法通过调整这些变量来使其工作。

我得到的最新错误消息是它找不到库,但它似乎表明它正在使用“/usr/local/include”作为包含路径,这是不正确的(我可以’ t似乎修复它)。是否有解决方案可以解决这个问题,还是我需要在 CMake 中四处寻找才能解决?

原文由 BD at Rivenhill 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 795
2 个回答

在对 CMake 进行挖掘和试验之后,我确定 CMake 对我所有的 Boost 库都包含在 /usr/local/lib/boost 而不是 /usr/local/lib 中这一事实不满意。一旦我将它们软链接回来,构建工作。

原文由 BD at Rivenhill 发布,翻译遵循 CC BY-SA 4.0 许可协议

您应该查看 FindBoost.cmake 脚本,它处理 Boost 检测和设置所有 Boost 变量。它通常位于 /usr/share/cmake-2.6/Modules/ 中。在其中,您将找到文档。例如:

 # These last three variables are available also as environment variables:
#
#   BOOST_ROOT or BOOSTROOT      The preferred installation prefix for searching for
#                                Boost.  Set this if the module has problems finding
#                                the proper Boost installation.
#

与 BOOST_ROOT 相比,您所指的变量实际上是由 FindBoost 模块设置的变量。请注意,您不必(并且可能也不想)编辑您的 CMake 项目配置来设置 BOOST_ROOT。相反,您应该使用环境变量,例如调用

# BOOST_ROOT=/usr/local/... ccmake .

原文由 ypnos 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题