首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Cmake没有找到助推器

Cmake没有找到助推器
EN

Stack Overflow用户
提问于 2010-09-28 08:05:55
回答 12查看 204.1K关注 0票数 103

我正在尝试使用CMake配置一个项目,但它无法找到Boost库,即使它们在指定的文件夹中。我已经指定了Boost_INCLUDE_DIRBoost_LIBRARYDIRBOOST_ROOT,但是我仍然得到一个错误消息,说CMake无法找到Boost。这种错误的原因可能是什么?

EN

回答 12

Stack Overflow用户

发布于 2012-01-07 22:00:39

通过阅读FindBoost.cmake文件本身,可以获得更多帮助。它位于您的“模块”目录中。

set(Boost_DEBUG 1)是一个很好的开始--这将显示大量关于boost在哪里寻找的信息,它正在寻找什么,并有助于解释为什么它找不到它。

它还可以帮助你找出它是否在你的BOOST_ROOT上正确地拾取。

如果boost的确切版本未在可用版本变量中列出,FindBoost.cmake有时也会出现问题。你可以通过阅读FindBoost.cmake找到更多关于这方面的信息。

最后,FindBoost.cmake在过去也有一些bug。您可以尝试的一件事是从最新版本的CMake中取出较新版本的FindBoost.cmake,并将其与CMakeLists.txt放在您的项目文件夹中-这样即使您有旧版本的boost,它也会使用您的项目文件夹中的新版本的FindBoost.cmake

祝好运。

票数 57
EN

Stack Overflow用户

发布于 2020-11-21 17:55:12

对我来说,这个错误很简单,因为在ubuntu上没有安装boost:

sudo apt install build-essential libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-test-dev

票数 12
EN

Stack Overflow用户

发布于 2016-01-06 04:48:37

我自己也在这个问题上挣扎了一段时间。事实证明,cmake使用Boost的命名约定来查找Boost库文件,在该约定中,库名称是用于构建它的编译器版本的函数。我们的Boost库是使用GCC 4.9.1构建的,并且该编译器版本实际上存在于我们的系统中;但是,GCC 4.4.7也恰好被安装了。碰巧的是,cmake的FindBoost.cmake脚本正在自动检测GCC 4.4.7安装,而不是GCC 4.9.1安装,因此正在查找文件名中包含"gcc44“而不是"gcc49”的Boost库文件。

简单的修复方法是通过在CMakeLists.txt中将Boost_COMPILER设置为"-gcc49“,强制cmake假设存在GCC 4.9。通过此更改,FindBoost.cmake查找并找到了我的Boost库文件。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3808775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档