2017-09-25 66 views
0

当使用下面的代码安装升压它可以简单地包括在使用#include <boost/whatever.hpp>项目:如何实现从源代码库安装boost的相同结果?

sudo apt install libboost-dev 

按照Boost install instruction#include <boost/whatever.hpp>可以使用$BOOST_ROOT实现。

当通过存储库安装boost时,不存在$BOOST_ROOT

从存储库安装boost后实际发生的情况以及从源代码安装时如何实现相同的结果?

回答

2

gcc有一个默认的搜索路径。当您从源代码编译boost并运行make install时,它将自身安装到它称为“BOOST_ROOT”的目录中。由于该目录不在gcc的包含文件的默认搜索路径中,因此当您编译时,您需要额外花费一些时间才能让程序查找标题。

boost deb包会将标头安装到/usr/include/boost中。由于/usr/include位于gcc头部搜索中,因此不需要额外的工作。

如果你想复制这种行为,我建议你指示提升安装到/usr/local/include/boost

/usr/local目录专门用于安装本地编译的库,所以它是一个比/usr/include更好的路径,deb安装在这里。这也避免了碰撞。更好的是,它在gcc默认的头文件搜索路径中。

+1

安装到默认路径然后执行'mkdir -p/usr/local/include; ln -s/usr/local/boost_x_y/include/boost/usr/local/include'(和二进制文件相同)。这样可以安装多个boost版本,并通过更新一些符号链接来选择“默认”版本。 –