boost庫檔名的層次與含義

2021-05-18 07:54:09 字數 1769 閱讀 1093

雖然料知到對boost進行完全版本編譯會產生很多的庫檔案,但是最後看了下同名庫產生的版本數的時候還是不禁感慨——完全版本……額有點眩暈的感覺。

在完全版本編譯完成後,一般乙個庫至少會產生16個以上的lib或dll,而像math等則更多,分c99f、c99l、c99、tr1f、 tr1l、tr1等等。根據它們在編譯時暫存檔案中所處的層次結構就可以比較清晰地明白它們是什麼版本,是哪種配置組合下的產物。這裡以 filesystem庫為例,如下是它在暫存檔案裡的層次結構:

/debug

boost_filesystem-mgw45-d-1_40.lib

boost_filesystem-mgw45-d-1_40.dll

/debug/link-static

libboost_filesystem-mgw45-d-1_40.lib

/debug/link-static/runtime-link-static

libboost_filesystem-mgw45-sd-1_40.lib

/debug/link-static/runtime-link-static/threading-multi

libboost_filesystem-mgw45-mt-sd-1_40.lib

/debug/link-static/threading-multi

libboost_filesystem-mgw45-mt-d-1_40.lib

/debug/threading-multi

boost_filesystem-mgw45-mt-d-1_40.lib

boost_filesystem-mgw45-mt-d-1_40.dll

/release

boost_filesystem-mgw45-1_40.dll

boost_filesystem-mgw45-1_40.lib

/release/link-static

libboost_filesystem-mgw45-1_40.lib

/release/link-static/runtime-link-static

libboost_filesystem-mgw45-s-1_40.lib

/release/link-static/runtime-link-static/threading-multi

libboost_filesystem-mgw45-mt-s-1_40.lib

/release/link-static/threading-multi

libboost_filesystem-mgw45-mt-1_40.lib

/release/threading-multi

boost_filesystem-mgw45-mt-1_40.dll

boost_filesystem-mgw45-mt-1_40.lib

由以上的資料夾層次結構基本就可以得出結論:

1、以「lib」開頭的是「link-static」版本的,而直接以「boost」開頭的是「link-shared」版本的。

2、有「d」的為debug版本,沒有的則是release版本。

3、有「s」的為「runtime-link-static」版本,沒有的則是「runtime-link-shared」版本。

4、有「mt」的為「threading-multi」版本,沒有的則是「threading-single」版本。

目前仍然困惑的是那些在字尾名前面不帶版本號的檔案是在**生成的,它們是幹什麼的,在暫存檔案裡根本見不到它們的影子。

解析 Boost 庫的檔名

boost 庫編譯的 lib 檔案按下面的規則組合檔名 boost lib prefix boost lib name boost lib toolset boost lib thread opt boost lib rt opt boost lib version 這些定義為 boost lib ...

解析 Boost 庫的檔名

boost 庫編譯的 lib 檔案按下面的規則組合檔名 boost lib prefix boost lib name boost lib toolset boost lib thread opt boost lib rt opt boost lib version 這些定義為 boost lib ...

Boost庫實現資料夾下所有pcd檔名稱的提取

下面的 使用boost庫實現資料夾下所有pcd檔名稱的提取,首先建立兩個向量pcd files 和pcd paths用於儲存資料夾下的點雲序列和路徑的序列。boost filesystem is directory 用於判斷傳入的引數dir 是否為目錄。boost filesystem direct...