【问题标题】:How to add compiler include paths and linker library paths for newly installed Boost?如何为新安装的 Boost 添加编译器包含路径和链接器库路径?
【发布时间】:2011-05-06 15:14:20
【问题描述】:

我有 RHEL 5.2,安装了 Boost 1.33。 我下载了 boost_1_44_0.tar.bz2。并建造了它。完成后显示:

The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    /home/dfe/Archive/boost_1_44_0

The following directory should be added to linker library paths:

    /home/dfe/Archive/boost_1_44_0/stage/lib
  1. 如何添加上述包含路径?
  2. 当我执行“rpm -q boost”时,它显示 boost-1.33.1-10.el5。为什么会这样,我安装的是 1.44 版?
  3. 有没有更好的方法来安装最新版本的 Boost?

【问题讨论】:

    标签: c++ linux boost build rpm


    【解决方案1】:

    在 Linux 系统上安装软件总是需要三个步骤:

    1. 配置——“检查”
    2. make —“在当前目录中构建软件”
    3. make install —“将文件复制到系统,以便其他软件可以使用该软件”

    你可能做了make 的等价物,但没有做make install 的等价物。你需要运行

    sudo ./b2 install
    

    运行后./b2

    【讨论】:

    • 这对我的 Debian8 很有帮助。
    【解决方案2】:

    只需像这样将路径添加到您的 .bashrc 或 .profile(或任何漂浮的东西):

    export LIBS="-L/home/dfe/Archive/boost_1_44_0/stage/lib"
    export CPPFLAGS="-I/home/dfe/Archive/boost_1_44_0"
    

    【讨论】:

    • 不知道为什么这被否决了......有人可以解释这个答案有什么问题吗?
    【解决方案3】:

    您必须将这些目录包含到您将用于构建应用程序的 makefile 中

    CC -I/home/dfe/Archive/boost_1_44_0 -L/home/dfe/Archive/boost_1_44_0/stage/lib yourprogram.cpp
    

    -I 选项将 dir 添加到搜索#include 文件的目录列表中。

    -L 选项将 dir 添加到链接器搜索库的目录列表中

    CC 是 sun 编译器...

    【讨论】:

    • 耶!有效!谢谢!虽然我的意图是让旧版本的 Boost 完全被新版本取代。现在,/usr/include/boost/ 中的文件似乎已经更新,但是在我使用的每个程序中一直链接到 /home/dfe/Archive/boost_1_44_0 文件夹很烦人。我能做些什么让 1_44_0 成为默认版本?
    【解决方案4】:

    首先,我删除了现有的 boost rpm 使用

    rpm -e boost-1.33.1-10.el5
    

    显示一条消息“错误:“boost”指定多个包”

    然后尝试:

    rpm -e --allmatches boost
    

    (我不记得我输入的是“boost”还是“boost-1.33.1-10.el5”)

    显示了具有依赖关系的包。 我做到了:

    rpm -e [packagename1]
    rpm -e [packagename2]
    

    以此类推然后做了:

    rpm -e --allmatches
    

    这完全从我的系统中删除了提升。

    然后我使用 tar -xvjf boost_1_44_0.tar.bz2 提取 boost_1_44_0.tar.bz2 并运行引导程序:

    ./bootstrap.sh
    

    然后将 bjam 运行为:

    ./bjam install
    

    就是这样! Boost 安装在我的系统上,我在编译程序时不必指定任何链接器选项!耶! 现在'rpm -q boost'命令显示没有安装任何包。

    【讨论】:

    猜你喜欢
    • 2012-09-07
    • 2017-12-17
    • 2012-06-06
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多