導航:首頁 > 源碼編譯 > debian下編譯和使用boost共享庫

debian下編譯和使用boost共享庫

發布時間:2024-05-31 14:36:45

① 如何在linux上使用boost:thread-C/C++

下載到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分鍾。結束後即安裝完畢。


#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程序。

② RockPI 4A Linux內核下載與編譯

本文介紹RockPI 4A單板Debian系統Linux內核的下載和編譯方法,為後續介紹RockPI 4A單板Linux內核調試進行拋磚引玉。

一笑神腔、代碼下載

Rockpi 4A Debian版本SDK代碼下載方法:

代碼下載完成後,顯示如下瞎冊:

kernel 目錄下保存Linux內核代碼。

build 目錄下保存配置和編譯腳本。

如果RockPI 4A代碼下載失敗,提示如下:

解決方法:將下載鏈接中 https 替換成 git 。

二、內核編譯

使用代碼里的編譯腳本,編譯腳本名稱: mk-kernel.sh ,位置如下:

註:在腳本 mk-kernel.sh 中有一段代碼: source $LOCALPATH/build/board_configs.sh $BOARD ,使用腳本編譯時,必須在 build 文件夾同一級目錄。

RockPI 4A Linux內核編譯方法碰衫如下(使用...省略部分編譯輸出):

其中: rockpi4a 對應RockPI 4A單板,如果使用其它單板,需要設置不同內容。單板類型可參考 build/board_configs.sh 腳本中 case ${BOARD} in 的選項。例:

編譯出來的映像路徑:

③ boost 庫1.36無法編譯。

為了樓主的問題我是跋山涉水,翻山越嶺啊 跑國外去down了這個東東

我發現我編譯是沒有問題的 在編譯bat裡面我發現 它會檢測你現在裝的編譯器環境是那個 例如

setlocal & endlocal
if EXIST "%ProgramFiles%\Microsoft Visual C++\VC98\bin\VCVARS32.BAT" (
set "BOOST_JAM_TOOLSET=msvc"
set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual C++\VC98\"
goto :eof)

如果你有錯誤說明環境變數有問題 建議你查下你的vc裝的有沒有問題
Microsoft Visual C++ 6.0,可在工具→選擇→目錄處把Boost的路徑(如前面的boost_1_26_0)添加到Include Files搜索路徑中。

boost 貌似是很強大的 以前沒怎麼注意過 樓主會用介紹下嘍
good luck

剛才看了下 果然很強大哦 謝謝樓主帶領我到boost的世界 哈

④ boost源碼如何應用

下載Boost庫,這里我選擇下載boost_1_55_0.zip
解壓boost文件到本地目錄(如G:\boost_1_55_0),可以發現解壓後的文件中有一個bootstrap.bat文件。
然後以管理員身份打開cmd窗口,

上述命令執行完畢後可以發現G:\boost_1_55_0下新生成了一個bjam.exe文件
在命令窗口中輸入語句:bjam.exe
此過程將默認根據系統已經安裝好的編譯工具(VS2008,2010,2012,2013)等編譯相應的Lib文件、頭文件等。(此步驟大概需要10分鍾)
可以看到msvc 12.0,這是因為我系統中已經安裝過了VS2013
msvc : 8.0是VS2005
msvc : 10.0是VS2010
msvc : 12.0是VS2012、VS2013

第5步執行成功後會有如下信息提示
至此我們已經完成了boost庫的安裝,下面需要配置一下VS2013了。新建一個VS2013控制台應用程序(工程名為boostest),添加如下代碼
#include "stdafx.h"
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.0123456789");
string s0 = lexical_cast<string>(a);
string s1 = lexical_cast<string>(b);
cout << "number: " << a << " " << b << endl;
cout << "string: " << s0 << " " << s1 << endl;
int c = 0;
try{
c = lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast& e){
cout << e.what() << endl;
}
return 0;
}
添加boostest工程的包含目錄和庫目錄
包含目錄添加 G:\boost_1_55_0
庫目錄添加 G:\boost_1_55_0\stage\lib

進入代碼窗口編譯並成功運行說明BOOST庫確實已經配置成功,可以放心使用。

閱讀全文

與debian下編譯和使用boost共享庫相關的資料

熱點內容
原子幣app在哪裡注冊的 瀏覽:526
php數組保存文件 瀏覽:224
無理的命令 瀏覽:508
問道手游解壓失敗是什麼原因 瀏覽:776
mysql命令提示 瀏覽:371
apachephp中文亂碼 瀏覽:340
pythonimportpylab 瀏覽:238
阿里雲app伺服器價格表 瀏覽:981
appstore怎麼搶手機 瀏覽:845
列印伺服器是什麼列印隊列 瀏覽:359
網上怎麼用app辦理營業執照 瀏覽:861
sql如何查看伺服器地址 瀏覽:779
編譯速度和系統有關嗎 瀏覽:58
復盛製冷壓縮機 瀏覽:982
雲伺服器共享手機流量 瀏覽:842
星界邊境像素壓縮 瀏覽:459
演算法分析與設計二手 瀏覽:983
學編程如何配電腦 瀏覽:971
怎麼看特徵找卡密的加密方式 瀏覽:526
方舟非官方伺服器怎麼賺錢 瀏覽:517