boost安裝linux
1. 在linux上運行boost庫的問題
我系統是ubuntukylin14.04
然後今天去BOOST下了最新版的boost1.57版
下載下來的壓縮文件我解壓到/opt目錄下即/opt/boost_1_57_0
然後
cd /opt/boost_1_57_0;
./boststrap;
./b2
這里b2命令執行完成後顯示:
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
/opt/boost_1_57_0
The following directory should be added to linker library paths:
/opt/boost_1_57_0/stage/lib
然後我找了一段例子
C/C++ code?
1
2
3
4
5
6
7
8
9
10
#include<iostream>
#include<boost/bind.hpp>
using namespace std;
using namespace boost;
int fun(int x,int y){return x+y;}
int main(){
int m=1;int n=2;
cout<<boost::bind(fun,_1,_2)(m,n)<<endl;
return 0;
}
用g++編譯的時候提示
bst.cxx:2:31: fatal error: boost/bind.hpp: 沒有那個文件或目錄
#include<boost/bind.hpp>
^
compilation terminated.
2. 在linux系統下,安裝boost.python庫時問題求解
你把這個mole 重新安裝在python目錄下,或者在path里把mole所在目錄添加上。。。
3. 電腦直接安裝了linux操作系統,使用kdevelop編程,現在需要用到boost庫。可是一直配置不上,求大神幫忙
sudoapt-getinstalllibboost-all-dev
然後包括boost的頭文件在你的代碼里就好了。boost是模版庫,大部分不需要鏈接庫的。
4. Linux 系統下如何安裝使用 Boost庫
http://wenku..com/view/57cbbd422af90242a995e530.html
5. linux下的boost庫的安裝方法是什麼
打開synaptic, 找到libboost-all-dev, 安裝即可。
安裝後可以查看boost相關庫,在/usr/lib/目錄下
如:/usr/lib/libboost_date_time.a /usr/lib/libboost_math_tr1f-mt.a /usr/lib/libboost_serialization-mt.so
/usr/lib/libboost_date_time-mt.a /usr/lib/libboost_math_tr1f-mt.so /usr/lib/libboost_serialization.so
/usr/lib/libboost_date_time-mt.so /usr/lib/libboost_math_tr1f.so /usr/lib/libboost_serialization.so.1.42.0
/usr/lib/libboost_date_time.so /usr/lib/libboost_math_tr1f.so.1.42.0 /usr/lib/libboost_signals.a
/usr/lib/libboost_date_time.so.1.42.0 /usr/lib/libboost_math_tr1l.a /usr/lib/libboost_signals-mt.a
/usr/lib/libboost_filesystem.a /usr/lib/libboost_math_tr1l-mt.a /usr/lib/libboost_signals-mt.so
/usr/lib/libboost_filesystem-mt.a /usr/lib/libboost_math_tr1l-mt.so /usr/lib/libboost_signals.so
/usr/lib/libboost_filesystem-mt.so /usr/lib/libboost_math_tr1l.so /usr/lib/libboost_signals.so.1.42.0
/usr/lib/libboost_filesystem.so /usr/lib/libboost_math_tr1l.so.1.42.0 /usr/lib/libboost_system.a
/usr/lib/libboost_filesystem.so.1.42.0 /usr/lib/libboost_math_tr1-mt.a /usr/lib/libboost_system-mt.a
/usr/lib/libboost_graph.a /usr/lib/libboost_math_tr1-mt.so /usr/lib/libboost_system-mt.so
/usr/lib/libboost_graph-mt.a /usr/lib/libboost_math_tr1.so /usr/lib/libboost_system.so
/usr/lib/libboost_graph-mt.so /usr/lib/libboost_math_tr1.so.1.42.0 /usr/lib/libboost_system.so.1.42.0
/usr/lib/libboost_graph.so /usr/lib/libboost_prg_exec_monitor.a /usr/lib/libboost_test_exec_monitor.a
/usr/lib/libboost_graph.so.1.42.0 /usr/lib/libboost_prg_exec_monitor-mt.a /usr/lib/libboost_test_exec_monitor-mt.a
復制代碼頭文件在/usr/include/boost下gnuser@ubuntu:~$ ls /usr/include/boost/
accumulators date_time.hpp io_fwd.hpp pointer_cast.hpp spirit
algorithm detail iostreams pointer_to_other.hpp spirit.hpp
aligned_storage.hpp dynamic_bitset is_placeholder.hpp pool statechart
any.hpp dynamic_bitset_fwd.hpp iterator preprocessor static_assert.hpp
archive dynamic_bitset.hpp iterator_adaptors.hpp preprocessor.hpp strong_typedef.hpp
array.hpp enable_shared_from_this.hpp iterator.hpp program_options swap.hpp
asio exception lambda program_options.hpp system
復制代碼boost庫命名:
比如libboost_regex-vc71-mt-d-1_34.lib,
lib: 庫前綴,除了windows平台,都是這個前綴
boost_regex: boost的regex庫
-mt 多線程支持
-d debug版本
6. 如何編譯boost linux
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源碼包中有配置腳本,直接用就可以:
#sh ./bootstrap.sh
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
7. 如何在ubuntu下配置boost
這里有兩種安裝方法:
=============
第一種:
也是最簡單的:進入linux系統後,輸入
# apt-cache search boost
你將看到很多文件信息,你會看到其中一個文件叫 libboost-dev, 直接安裝此文件即可:
# apt-get install libboost-dev
這樣就安裝成功了。這個速度很快,是因為直接拷貝了lib文件到系統。
可以使用本文最後代碼測試安裝成功與否。
==============
第二種:
這個速度比較慢,因為需要自己編譯出lib庫。
首先下載boost庫從www.boost.org這個網站下載linux的boost庫,有2種格式,1) .bz2 2) .gz
我下的是gz結尾的。放到linux的文件系統里,這里假設為/usr/local/boost_1_52_0.tar.gz
第一步:解壓壓縮包,命令如下,(#號僅為起始標記作用,敲命令時忽略):
# cd /usr/local/
# tar -zxvf boost_1_52_0.tar.gz
第二步:解壓後得到文件夾boost_1_52_0,運行如下命令:
# cd boost_1_52_0/
# ./bootstrap.sh //這個命令類似於配好環境
第三步:運行二步命令後得到一個文件,名字是bjam,運行這個文件:
# ./bjam //這里需要十幾分鍾,完成後就代表安裝成功了。
第四步:檢驗安裝成功否:在linux下任意目錄下創建test.cpp
#include
#include
int main()
{
int a = boost::lexical_cast("123456");
std::cout << a < return 0;
}
這是一個字元串轉化為整數的簡單程序
運行命令:
# g++ test.cpp -o test
# ./test
將得到輸出結果為:123456
代表boost安裝成功,就可以盡情使用boost的美妙了!!!
8. linux下安裝boost庫時,boost版本跟gcc版本有關系嗎
這個當然是和 GCC 版本有關啦
考慮一些新特性的支持,選較新版本的 GCC
9. 如何在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程序。
10. linux CentOS7系統如何升級boost庫
直接重新下載安裝即可
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