C++ 如何为新安装的Boost添加编译器包含路径和链接器库路径?

C++ 如何为新安装的Boost添加编译器包含路径和链接器库路径?,c++,linux,boost,build,rpm,C++,Linux,Boost,Build,Rpm,我有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 shoul

我有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
  • 如何添加上述包含路径
  • 当我执行“rpm-q boost”时,它显示boost-1.33.1-10.el5。当我安装了1.44版时,为什么会这样
  • 有没有更好的方法来安装最新版本的Boost

  • 您必须将这些目录包含到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编译器…

    首先,我使用

    rpm -e boost-1.33.1-10.el5
    
    将显示一条消息,提示“错误:“boost”指定多个包

    然后尝试:

    rpm -e --allmatches boost
    
    (我不记得我是键入了“boost”还是“boost-1.33.1-10.el5”)

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

    依此类推,然后做了:

    rpm -e --allmatches
    
    这完全从我的系统中删除了boost

    然后,我使用tar-xvjf boost_1_44_0.tar.bz2提取了boost_1_44_0.tar.bz2,并使用以下命令运行引导:

    ./bootstrap.sh
    
    然后以以下身份运行bjam:

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

    只需将路径添加到.bashrc或.profile(或漂浮在船上的任何内容)中,如下所示:

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

    在Linux系统上安装软件通常有三个步骤:

  • 配置-“检查”
  • make-“在当前目录中生成软件”
  • 进行安装-“将文件复制到系统,以便其他软件可以使用此软件”
  • 您可能执行了与
    make
    等效的操作,但没有执行与
    makeinstall
    等效的操作。你需要跑步

    sudo ./b2 install
    

    运行
    /b2

    之后,耶!成功了!谢谢尽管我的意图是让旧版本的Boost完全被新版本所取代。现在,/usr/include/boost/中的文件似乎已经更新了,但在我使用的每个程序中都要一直链接到/home/dfe/Archive/boost\u 1\u 44\u 0文件夹,这很烦人。要使1\u 44\u 0成为默认版本,我能做些什么?这里的关键是。/bjam install,因为说明使它看起来像是。/b2是用于安装的命令。关于
    /b2
    vs
    /bjam
    :不确定为什么会被否决……有人能解释一下这个答案的错误吗?这对我的Debian8很有帮助。
    sudo ./b2 install