ubuntu 16.04 下更換boost版本


  

如果是新機器,沒裝過boost,那么直接一條命令

sudo apt-get install libboost-all-dev


頭文件一般安裝在

/usr/include

下面有一個目錄boost,里面是頭文件。而庫文件一般都放在

 

/usr/lib/x86_64-linux-gnu

目錄下。比如libboost_system.a文件。

  

一 如何查看當前安裝的boost版本

 

dpkg -S /usr/include/boost/version.hpp


通過上面的命令,你就可以發現boost的版本了,查看結果可能如下:

 

libboost1.54-dev: /usr/include/boost/version.hpp


二 如何刪除當前安裝的boost

 

sudo apt-get autoremove libboost1.54-dev


那么就可以刪除boost了。上面的libboost1.54-dev是在第一步中看到的版本。

 

注意的是,如果你使用的是以下命令安裝的boost

 

sudo apt-get install libboost-dev

那么很有可能,在目錄/usr/lib/x86_64-linux-gnu下並沒有libboost_system.a等文件,這個是要注意的。

  三 如何安裝舊版本boost:

  1 下載舊版本,我的是下載1.55的,對應版本路徑:

  https://sourceforge.net/projects/boost/files/boost/1.55.0/ 

  2 在根目錄下執行:   

         ./bootstrap.sh --with-toolset=clang 

  3 執行:

  ./b2 install --build-type=complete --layout=versioned threading=multi --prefix="/usr/lib/boost-1.55"

  編譯完成后使用:

  4 設置環境變量

  以boost庫的存放目錄/usr/boost為例, 打開/etc/profile, 追加以下內容(前兩行為編譯時路徑): 

  export CPLUS_INCLUDE_PATH=/usr/boost/include:$CPLUS_INCLUDE_PATH

  export LIBRARY_PATH=/usr/boost/lib:$LIBRARY_PATH

  export LD_LIBRARY_PATH=/usr/boost/lib:$LD_LIBRARY_PATH

 

   最后執行命令使環境變量生效:

  # source /etc/profile

  5 測試結果:

  新建文件boost_test.cpp

#include <string>
#include <iostream>
#include <boost/version.hpp>
#include <boost/timer.hpp>
using namespace std;
int main()
{
    boost::timer t;
    cout << "max timespan: " << t.elapsed_max() / 3600 << "h" << endl;
    cout << "min timespan: " << t.elapsed_min() << "s" << endl;
    cout << "now time elapsed: " << t.elapsed() << "s" << endl;
    cout << "boost version" << BOOST_VERSION <<endl;
    cout << "boost lib version" << BOOST_LIB_VERSION <<endl;
    return 0;
}

  編譯:g++ boost_test.cpp -o boost_test

 四 boost庫的科普:

  Boost庫是為C++語言標准庫提供擴展的一些C++ 程序庫的總稱。
Boost庫由Boost社區組織開發、維護。其目的是為C++程序員提供免費、同行審查的、可移植的程序庫。Boost庫可以與C++標准庫完美共同工作,並且為其提供擴展功能。Boost庫使用Boost License來授權使用,根據該協議,商業的非商業的使用都是允許並鼓勵的。
Boost社區建立的初衷之一就是為C++的標准化工作提供可供參考的實現,Boost社區的發起人Dawes本人就是C++標准委員會的成員之一。在Boost庫的開發中,Boost社區也在這個方向上取得了豐碩的成果。在送審的C++標准庫TR1中,有十個Boost庫成為標准庫的候選方案。在更新的TR2中,有更多的Boost庫被加入到其中。從某種意義上來講,Boost庫成為具有實踐意義的准標准庫。
  大部分boost庫功能的使用只需包括相應頭文件即可,少數(如 正則表達式庫,文件系統庫等)需要鏈接庫。里面有許多具有工業強度的庫,如graph庫。
很多Boost中的庫功能堪稱對語言功能的擴展,其構造用盡精巧的手法,不要貿然的花費時間研讀。Boost另外一面,比如Graph這樣的庫則是具有工業強度,結構良好,非常值得研讀的精品代碼,並且也可以放心的在產品代碼中多多利用。
 
  參考文檔:
1 https://baike.baidu.com/item/Boost%E5%BA%93 
2 https://sourceforge.net/projects/boost/files/boost/1.55.0/ 
3 https://blog.csdn.net/dongchongyang/article/details/72718687
4 http://valleylord.github.io/post/201601-boost-install/ 


免責聲明!

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



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