Linux下編譯安裝BOOST

weixin_33766168發表於2017-11-09

標籤:

linux平臺下要編譯安裝除gcc和gcc-c++之外,還需要兩個開發庫:bzip2-devel 和python-devel,因此在安裝前應該先保證這兩個庫已經安裝:

#yum install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel -y

然後是去官網下載原始碼包,地址
下載,解壓,按照如下步驟:

#tar xvzf boost_1_50_0.tar.gz

進入boost_1_50_0目錄:

#cd boost_1_50_0

然後是編譯安裝,boost原始碼包中有配置指令碼,直接用就可以:

#
Building Boost.Build engine with toolset gcc... tools/build/v2/engine/bin.linuxx86_64/b2
Detecting Python version... 2.6
Detecting Python root... /usr
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...

Bootstrapping is done. To build, run:

    ./b2
    
To adjust configuration, edit ‘project-config.jam‘.
Further information:

   - Command line help:
     ./b2 --help
     
   - Getting started guide: 
     http://www.boost.org/more/getting_started/unix-variants.html
     
   - Boost.Build documentation:
     http://www.boost.org/boost-build2/doc/html/index.html

接下來就是編譯,重點關注是否編譯成功:

#./b2

然後就是漫長的等待,如果最後出現:


The Boost C++ Libraries were successfully built!           The following directory should be added to compiler include paths:              /home/gang/BAK/boost_1_50_0       The following directory should be added to linker library paths:          /home/gang/BAK/boost_1_50_0/stage/lib


最後,sudo ./b2 install --prefix=/usr/local


1、  boost中大部分庫是不用編譯成動態或者靜態連結庫。

2、  只有regex,thread等幾個庫比較麻煩一點.要編譯。

3、  如果用gcc編譯器-l指定動態連結庫的路徑,還要指定標頭檔案的路徑。

4、  或者連結的boost庫放到.c或.cpp之後,否則連結不能通過,編譯可以通過。

如下所示:g++ -lz -lpthread hh.c -lboost_filesystem -lboost_thread


5,

安裝完畢後的標頭檔案預設是在/usr/local/include目錄下,.a.so/usr/local/lib目錄下。

然後將需要使用的庫sudo cp/usr/lib 。不然在執行程式碼時,ldd會提示找不到.so檔案。

./main: error while loading shared libraries: libboost_serialization.so.1.52.0: cannot open shared object file: No such file or directory

 

      本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1928261http://blog.51cto.com/douya/1928261,如需轉載請自行聯絡原作者




相關文章