2017-09-25 67 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版本,並通過更新一些符號鏈接來選擇「默認」版本。 –