91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Boost 編譯鏈接

發布時間:2020-09-01 19:57:05 來源:網絡 閱讀:3740 作者:fengyuzaitu 欄目:編程語言

頭文件就是庫

使用者最常問的問題就是“我該怎么安裝Boost”,這個也是我一開始最關心的問題,Boost這點做的很好,將大部分實現都封裝在頭文件里,所以對于一些基本的Boost庫,其實是不需要安裝的,只需要將頭文件include到自己的程序里,當然前提是你把Boost的所有用到的頭文件都拷貝了一份。

Boost是如何做到這點的?

這是因為Boost的頭文件(*.hpp)包含了模板和內聯函數,這點隨便找一個hpp文件來看你就明白了,所以不需要去靜態鏈接或者動態鏈接二進制lib庫了。

不過Boost的某些庫還是需要生成二進制的庫的,如果你要使用他們,必須編譯安裝哦,他們是:

Boost.Filesystem

Boost.IOStreams

Boost.ProgramOptions

Boost.Python

Boost.Regex

Boost.Serialization

Boost.Signals

Boost.Thread

Boost.Wave



技巧1

可以通過在VS預處理器中添加BOOST_LIB_DIAGNOSTIC,在編譯的output窗口中輸出程序具體鏈接了哪些boost庫以及鏈接順序


技巧2

可以通過修改源碼boost/config/user.hpp中,取消// #define BOOST_ALL_NO_LIB的注釋,重新編譯Boost源碼,關閉Boost自動鏈接

在如下一種情況下需要關閉自動連接功能:因為asio自動連接了system,data_time和regex庫,其實平常只用到了system庫,而data_time和regex,如果不使用deadline_timer和asyn_read_until之類的東西的話,是不用連接的.


命名規則

libboost_filesystem-vc80-mt-sgdp-1_42.lib

前綴:統一為lib,但在Windows下只有靜態庫有lib前綴;

庫名稱:以"boost一”開頭的庫名稱,在這里是boost_filesystem;

編譯器標識:編譯該庫文件的編譯器名稱和版本,在這里是-vc80;

多線程標識:支持多線程使用-mt,沒有表示不支持多線程;

ABI標識:這個標識比較復雜,標識了Boost庫的幾個編譯鏈接選項;

s:  靜態庫標識;

gd:debug版標識;

p:  使用STlport而不是編譯器自帶STL實現;

版本號:Boost庫的版本號,小數點用下畫線代替,在這里是1_42;

擴展名:在Windows上是lib,在Linux等類Unix操作系統上是a或者.so。



boost 鏈接出錯無法打開libboost_thread-vc140-mt-sgd

第一個鏈接說明,當選擇什么樣子的運行時庫,程序在編譯的時候,就會去調用相應編譯時期指定的版本,比如s代表的是運行時靜態庫,gd代表的是調試模式,當出現無法打開上面的情況下,說明放在指定目錄下的boost編譯庫可能是動態庫,跟目標的不一致,因此需要調整匹配上



“多線程(/MT)”: release版本多線程靜態庫

    需要使用  libboost_regex-vc90-mt-s-1_44.lib

 

“多線程調試(/MTd)”:debug版本多線程靜態程庫

    需要使用 libboost_regex-vc90-mt-sgd-1_44.lib

 

 

“多線程 DLL(/MD)”: release版本多線程動態庫

    需要使用

靜態boost 庫連接

libboost_regex-vc90-mt -1_44.lib

 

動態boost 庫連接, 需要在引入庫前加上“lib”,

運行需要帶上對應的dll

boost_regex-vc90-mt-1_44.lib  à在引入庫前加上“lib”

         boost_regex-vc90-mt-1_44.dll

 

 

“多線程調試 DLL(/MDd)”: debug版本多線程動態庫

      需要使用

靜態boost 庫連接

libboost_regex-vc90-mt-gd-1_44.lib

 

動態boost 庫連接, 需要在引入庫前加上“lib”,

運行需要帶上對應的dll

boost_regex-vc90-mt-gd-1_44.lib  à在引入庫前加上“lib”

         boost_regex-vc90-mt-gd-1_44.dll

http://www.cnblogs.com/bluedoctor/p/6236905.html


http://blog.csdn.net/xucuiping_/article/details/5979532


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武穴市| 屯昌县| 涿州市| 汉沽区| 宜城市| 内乡县| 开化县| 石台县| 科技| 和平县| 古田县| 鸡西市| 塔城市| 西林县| 九台市| 合作市| 闽清县| 蓬安县| 涞源县| 沾化县| 恩平市| 黔南| 长海县| 饶平县| 蕲春县| 理塘县| 沅江市| 云梦县| 邵阳市| 奉新县| 延寿县| 土默特右旗| 隆尧县| 银川市| 石门县| 澄迈县| 洛宁县| 平乡县| 渝中区| 虹口区| 贵德县|