Ubuntu 命令行:运行 ./configure 导致错误“找不到 Boost 标头”
Posted
技术标签:
【中文标题】Ubuntu 命令行:运行 ./configure 导致错误“找不到 Boost 标头”【英文标题】:Ubuntu command line: running ./configure results in error 'cannot find Boost headers' 【发布时间】:2017-04-29 09:01:25 【问题描述】:我正在尝试安装最新版本的 dlvhex。我从here 下载了它(我使用的是开发版,因为它是唯一一个足够新的版本)。我一直按照说明进行操作,git clone
有效,./bootstrap.sh
有效,但是当我尝试运行 ./configure
时,出现以下错误:
checking for Boost headers version >= 1.55.0... no
configure: error: cannot find Boost headers version >= 1.55.0
为什么会发生这种情况,我该如何解决?
如果需要更多信息
Boost 1.64 版在我的主文件夹中。
我正在运行 Ubuntu14.04
它太长了,所以我现在不会发布它,但如果您需要我运行 ./configure
时的完整输出,请告诉我,我会将其添加到我的问题中。
注意 这个问题与this 类似,但这个问题一直没有得到满意的答案,所以我想我最好再问一次。
更新 我做了更多的故障排除,并找到了一些可能相关的信息。在 configure.log 中,我发现了以下两个部分:
第一节
configure:17740: checking for Boost headers version >= 1.55.0
configure:17811: g++ -c -W -Wall -O3 conftest.cpp >&5
conftest.cpp:63:3: error: #error Boost headers version < 105500
# error Boost headers version < 105500
第二节
| #include <boost/version.hpp>
| #if !defined BOOST_VERSION
| # error BOOST_VERSION is not defined
| #elif BOOST_VERSION < 105500
| # error Boost headers version < 105500
| #endif
这似乎意味着正在检查 boost 标头 version.hpp 并且 BOOST_VERSION 被识别为小于 1.55。
这里是 version.hpp(去掉了 cmets 以便更易读):
#ifndef BOOST_VERSION_HPP
#define BOOST_VERSION_HPP
#define BOOST_VERSION 106400
#define BOOST_LIB_VERSION "1_64"
#endif
基于此信息,我认为 configure 必须检查 boost 文件夹,发现它的版本太低,并且在没有检查任何其他 boost 文件夹的情况下放弃 - 我必须安装两个相互冲突的 boost 版本。但是,我在我的计算机上找不到二级 boost 文件夹。
谁能帮我验证它是否真的是导致此问题的冲突增强版本,找出如何删除冲突版本,或就可能导致问题的原因提出任何替代理论?
【问题讨论】:
【参考方案1】:我找到了答案;因为我手动将 boost 文件夹保存到我的主目录,它不在“预期”位置,所以我只需要使用 ./configure --with-boost=/path/to/boost/folder
。
我花了这么长时间才弄清楚这有点尴尬,但我很高兴我最终找到了答案。
【讨论】:
以上是关于Ubuntu 命令行:运行 ./configure 导致错误“找不到 Boost 标头”的主要内容,如果未能解决你的问题,请参考以下文章
在ubuntu12.04LTS下成功编译安装带有h264和aac编码的ffmpeg的完整过程(命令行)
ubuntu14.10上安装coreseek不成功,运行buildconf.sh不能生成configure
在命令行上 Ubuntu 下使用 mutt 和 msmtp 发送 Gmail 邮件