Ⅰ 如何在linux上使用boost:thread-C/C++
首先需要安裝boost,步驟如下:
下載到boost_1_49_0.tar.bz2 (當然,其他壓縮格式也可以)後,可以把它放在用戶目錄下,即:~/
解壓縮:tar -jxvf boost_1_49_0.tar.bz2
這樣,出現文件夾:~/boost_1_49_0
然後進入:$ cd boost_1_49_0
你會發現有一個sh命令:bootstrap.sh
運行它:$ ./bootstrap.sh (boost自己的get start文檔中說設置參數 --prefix=dir 其中dir為你想指定的安裝文件夾,我建議就不用加這個參數,它會默認安裝到/usr/local)
結束後出現一個可執行文件: ~/boost_1_49_0/b2
運行這個文件: $ sudo ./b2 install (Ubuntu用戶千萬別忘了加sudo,不然安裝後將無法完全使用)
編譯安裝時間比較長,根據不同機器的情況20~40分鍾。結束後即安裝完畢。
boost::thread的使用
#include<boost/thread.hpp>
#include<iostream>
voidtask1(){
//dostuff
std::cout<<"Thisistask1!"<<std::endl;
}
voidtask2(){
//dostuff
std::cout<<"Thisistask2!"<<std::endl;
}
intmain(intargc,char**argv){
usingnamespaceboost;
threadthread_1=thread(task1);
threadthread_2=thread(task2);
//dootherstuff
thread_2.join();
thread_1.join();
return0;
}
編譯時的命令為:
$ g++ -I./inlcude -L./lib example.cpp -lboost_thread -o example
編譯之後會出現一個 example 的可執行文件,可以運行:./example , 結果顯示:
This is task2!
This is task1!
可能你在運行時會出現這樣的錯誤:error while loading shared libraries: libboost_thread.so.1.49.0: cannot open shared object file: No such file or directory
這是因為要用到的庫不在默認的環境變數里,可以使用下面的命令添加:
$ sudo ldconfig /usr/local/lib
添加後,再執行./example,這樣你就完成了你的第一個boost::thread程序。
直接重新下載安裝即可
1.下載 boost
2. 將文件解壓在/usr/local/目錄下
3. 進入版/usr/local/boost/ 目錄, 在terminal中輸入
./bootstrap.sh
4.進入/usr/local/boost/ 目錄,在terminal中輸入
sudo ./bjam --layout=versioned --build-type=complete --toolset=gcc install
5.添加環境變數權(剛改完要重啟或者注銷一下來更新剛修改過的環境變數)
兩種方法:
(1)修改/etc/profie文件 末尾添加
export BOOST_INCLUDE=/usr/local/include/boost
export BOOST_LIB=/usr/local/lib
(2)在/etc/profile.d/ 中新建一個shell文件boost.sh
#!/bin/sh
export BOOST_INCLUDE=/usr/local/include/boost
export BOOST_LIB=/usr/local/lib
Ⅲ linux下安裝boost庫時,boost版本跟gcc版本有關系嗎
這個當然是和 GCC 版本有關啦
考慮一些新特性的支持,選較新版本的 GCC
Ⅳ Linux下使用CMake進行編譯的時候尋找Boost庫
通過調用 find_package 可以找到頭文件和所需要的庫文件或者是一個CMake打包配置文件,
運行完後可以得到很多變數,下塌啟坦面列了一些主要的
可以在搜索package之前,通過設置一些變數來幫助boost庫的查找
假如目標程序foo需要鏈接團桐旁友Boost庫regex和system,編寫如下的CMakeLists文件,
FindBoost