Linux 下 boost 庫的安裝,配置個人環境變量


部分引自: https://blog.csdn.net/this_capslock/article/details/47170313

1. 下載boost安裝包並解壓縮
到http://www.boost.org/下載boost的安裝包,以boost_1_58_0.tar.gz為例
下載完成后進行解壓縮:

tar zxvf boost_1_58_0.tar.gz

2.設置編譯器和所選庫
先進入解壓縮后的目錄:

cd boost_1_58_0

然后運行bootstrap.sh腳本並設置相關參數:

./bootstrap.sh --with-libraries=all --with-toolset=gcc

--with-libraries指定編譯哪些boost庫,all的話就是全部編譯,只想編譯部分庫的話就把庫的名稱寫上,之間用 , 號分隔即可

--with-toolset指定編譯時使用哪種編譯器,Linux下使用gcc即可,如果系統中安裝了多個版本的gcc,在這里可以指定gcc的版本,比如--with-toolset=gcc-4.4

 

3.編譯boost
執行以下命令開始進行boost的編譯:

./b2 toolset=gcc

編譯的時間大概要10多分鍾,耐心等待,結束后會有以下提示:

...failed updating 60 targets...
...skipped 21 targets...
...updated 663 targets...

4.安裝boost
最后執行以下命令開始安裝boost:

./b2 install --prefix=/home/zhangyw/boost/boostlib

5.添加環境變量

vim ~/.bashrc

文件末尾添加:

# Boost
export BOOST_INCLUDE=/home/zhangyw/boost/boostlib/include/
export BOOST_LIB=/home/zhangyw/boost/boostlib/lib

 

6.boost使用測試

以boost_thread為例,測試剛安裝完的boost庫是否能正確使用,測試代碼如下:

 1 #include <boost/thread/thread.hpp> //包含boost頭文件
 2 #include <iostream>
 3 #include <cstdlib>
 4 using namespace std;
 5 
 6 volatile bool isRuning = true;
 7 
 8 void func1()
 9 {
10     static int cnt1 = 0;
11     while(isRuning)
12     {
13     cout << "func1:" << cnt1++ << endl;
14     sleep(1);
15     }
16 }
17 
18 void func2()
19 {
20     static int cnt2 = 0;
21     while(isRuning)
22     {
23         cout << "\tfunc2:" << cnt2++ << endl;
24         sleep(2);
25     }
26 }
27 
28 int main()
29 {
30     boost::thread thread1(&func1);
31     boost::thread thread2(&func2);
32 
33     system("read");
34     isRuning = false;
35 
36     thread2.join();
37     thread1.join();
38     cout << "exit" << endl;
39     return 0;
40 }            

 

7.編譯方法

g++ boostTest.cpp -g -o boostTest -lboost_thread


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM