c++ - 尝试在 Ubuntu 11.04 上安装 Boost 1.49 时跳过 <dir> 因为缺少 ... 错误

标签 c++ boost installation

在尝试安装 Boost 1.49 时,当我到达使用 bjam 的阶段时,我不断遇到一个持续存在的问题。脚本。作为引用,我遵循安装说明 linked here ,但我也引用了 boost.org 安装页面。这些过程本质上是相同的,并且都给出相同的问题。

我将 tar 文件下载到保存所有安装软件的目录中:/home/ely/Software/Boost/boost_1_49_0/

我希望将 Boost 内容安装到目录 /usr/include/boost_1_49/ 中所以我使用以下命令:

 $ ./bootstrap.sh --prefix=/usr/include/boost_1_49 --libdir=/usr/include/boost_1_49/lib
 $ ./bjam variant=release link=shared install

第一个命令需要一些时间,但似乎成功并且没有产生任何错误。第二个命令需要更长的时间,然后始终输出如下内容:

 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/stdexcept for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/iomanip for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/new for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/fstream for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/set for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/locale for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/string for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/limits for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/complex for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/queue for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/stack for lack of /usr/include/boost_1_49/include/boost...
 ...skipped <p/usr/include/boost_1_49/include/boost>tr1/tr1/unordered_set for lack of /usr/include/boost_1_49/include/boost...

在所有这些跳过的底部,它总是说:

 ...failed updating 28 targets...
 ...skipped 9778 targets...

我反复检查了生成的工程文件,project-config.jam它列出了变量 prefix 的正确路径名, exec-prefix , libdir ,和includedir ,所以我不认为.jam文件是问题所在。

我还认为这可能是在/usr/include中创建文件夹的权限问题。 。所以我 chmoded /usr/include/boost_1_49到777,再次尝试命令,得到相同的结果。

有谁知道如何解决此问题,以及最终如何安装 Boost 以便可以在 /usr/include/boost_1_49/ 中找到这些文件?

已添加

如果我直接把tar文件放到我想要的目录下,/usr/include.boost_1_49 ,然后安装过程成功完成,没有任何跳过,它告诉我以下内容:

 The Boost C++ Libraries were successfully built!

 The following directory should be added to compiler include paths:

     /usr/include/boost_1_49

 The following directory should be added to linker library paths:

     /usr/include/boost_1_49/stage/lib

但即使将这些添加到适当的.conf之后我使用的文件,并发出 sudo ldconfig为了刷新路径,我在尝试包含 Boost 内容时遇到错误。例如,如果我尝试包含文件 boost/math/distributions.hpp ,然后我收到错误:

/usr/include/boost_1_49/boost/math/distributions.hpp:25: fatal error: boost/math/distributions/geometric.hpp: No such file or directory

我手动验证了geometric.hpp文件位于正确的位置,只是看不到它。我猜所有的#include <boost...> distributions.hpp 中的行无法正确识别 /usr/include/boost_1_49 中的版本,但我不知道为什么它们不是或者如何改变它所以它们是。

最佳答案

我遇到了同样的问题,直到我意识到用于运行 bjam 命令的用户名没有写入 /usr/include 目录的权限。

您需要运行 bjam 命令:

sudo ./bjam --your-options--

关于c++ - 尝试在 Ubuntu 11.04 上安装 Boost 1.49 时跳过 <dir> 因为缺少 ... 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952647/

相关文章:

c# - 以编程方式为桌面 "shortcut"创建快捷键组合

c++ - 带模板类的任意个参数赋值

C++ - 如果我使用 map ,我的对象是否被删除了两次?

c++ - 抽取 Eigen vector

c++ - 哪个是更好的方法 - 将 `const reference` 与 `boost::shared_ptr<Class>` 存储为成员变量

c++ - 没有 icu 的建筑 boost

installation - 我需要一个 WIX Bootstrapper 项目来安装我的软件和先决条件

tensorflow - 以可编辑模式安装tensorflow

c++ - 数组运行时错误

c++ - boost posix_time : stringstream input fails