當前位置:編程學習大全網 - 源碼下載 - 怎麽在ubuntu上安裝boost1.58

怎麽在ubuntu上安裝boost1.58

安裝好ubuntu14.04之後,下載boost、qt、osg的庫,進行編譯

1.boost

參考blogs.com/wondering/archive/2009/05/21/boost_setup.html

boost提取出來以後,先./configure,生成b2

這裏b2好像就是對應1.40以前的bjam,都是boost自己的編譯程序。

再執行./b2 link=static runtime-link=static variant=debug,release

layout=versioned stage --stagedir="/home/username/boost_1_58_0/bin/gcc"

threading=multi

這個命令是個大概的格式,具體可能有些拼寫符號有誤,主要就多說幾點。壹個是link和runtime-link,link是在編譯期間,是選擇

static還是shared,如果是static,那麽boost庫在編譯完成後,會綁入輸出的程序,如果是shared,那麽需要放在代碼目錄下,供

引用。runtime-link則是在程序發布之後,如果啟動運行,調用boost庫的方式,如果選擇shared,那麽不但需要把編譯輸出的文件給客

戶,還要給他壹堆依賴的動態鏈接庫。

variant是以什麽方式輸出,如果既想要debug 又想要release,那麽就用逗號連接。

但是,如果同時輸出debug,release,會產生命名沖突,必須指定layout=versioned,這樣debug和release出來的庫的名字才不會沖突。

stage編譯的話,編譯完成後,所有的庫文件都會被輸入指定的stagedir裏面,而include文件本身就在boost_1_58_0下面

的boost文件夾中。不需要再執行make

install,install的作用會把所有生成的庫拷入/usr/local/lib裏面,/boost_1_58_0/boost也會拷入/usr

/local/include 裏面,有點多余

但是stage方式編譯的話,在每次生成依賴boost庫的程序的時候,需要用-I在指定inlucde路徑。可以通過在環境變量文件裏面指定環境

變量,然後g++編譯的時候,指定這個環境變量。關於環境變量參考了這篇:/viewtopic.php?f=48&

t=468366),就又找到了這篇文章/%E6%BA%90%E5%88%97%E8%A1

%A8#Trusty.2814.04.29.E7.89.88.E6.9C.AC。這下就全都妥了。

然後進入qt解壓目錄,做./configure -static -debug-and-release -no-sql-sqlite

-no-sql-sqlite2 -no-sql-sqlite_symbian

-opengl生成靜態庫。註意,那幾個no-sql的選項,如果不帶的話,會在下壹步make的時候,報

qt_plugin_instance_qsqlite

unresolve之類的錯誤(pile

example勾選。然後再點擊壹次configure,再點generate。理論上依賴庫應該是沒問題的,因為我們apt-get了那麽多依賴庫對

吧。

然後終端裏make,如果報錯,如果報錯是和某個依賴庫有關的,那麽就重新打開cmake-gui,把那個依賴庫選項下的include、library全部刪掉,再重新生成,然後再重新make。如此反復,最終壹定會生成壹份可用的osg。

當然也可以不下載依賴庫,直接把QT和opengl在默認路徑下準備好,如果這樣的話其實更簡單,直接終端裏面運行./configure就行了,

自動會以release方式cmake出makefile,如果想要Debug方式,那就改壹下configure文件。然後make,壹般不會有問題。

make結束之後,所有生成的文件會位於解壓文件夾裏的bin、lib、inlcude裏,把這些拷貝出來,放到另外壹個文件夾比如build,然

後把下載到的data文件夾,裏面包括那個牛、滑翔機和卡車等等經典的模型,也放到這個build裏面,設置壹下環境變量,osg應該就可以用了。

設置有關環境變量的問題,需要設置兩個或者三個環境變量。如果在執行完make之後,再執行make

install,那麽只需要設置OSG_FILE_PATH指定data文件夾的位置,並在PATH中指定bin文件夾的位置(這樣可以運行

osgersion,osgiewer這些編譯時附送的應用)。make

install會把include和lib文件夾拷入usr/local下的include、lib文件夾。但是如果沒有執行make

install,那麽需要設置第三個環境變量,那就是LD_LIBRARY_PATH,我的分發版是ubuntu

14.04,sudo gedit /etc/environment打開配置文件,添加export

LD_LIRARY_PATH=$LD_LIBRARYPATH:path to lib然後在終端裏執行source

/etc/environment。這樣做是因為在執行osgiewer的時候,如果要讀入cow.osg文件,osg需要lib文件夾下的plugIn

文件夾裏的插件來讀取對應格式的文件。由於我我們沒有執行make install所以就需要告訴osg,這個lib文件夾到底在哪裏

/questions/14012021/osgviewer-cow-does-not-view-a-cow

/solofly752/article/details/45481137

  • 上一篇:閩政通行程碼在哪裏找出來?
  • 下一篇:股票分時黃線代表什麽
  • copyright 2024編程學習大全網