2011-09-22 46 views
13

我試圖在Windows 7中使用MSVC(VS 2010)構建boost庫。提升庫構建 - 運行時鏈接和鏈接選項之間的區別

我所遇到的bjam的命令行選項選項運行鏈接和鏈接。我想知道它們是如何使用的以及它們之間的確切區別。

我已經建立了使用此命令行

的bjam --with正則表達式變種=發行--build選項=完全

它產生這些文件中的升壓正則表達式庫:

1)boost_regex-VC100-MT-1_47.dll(進口庫:boost_regex-VC100-MT-1_47.lib)

2)libboost_regex-VC100-MT-1_47.lib

3)libboost_regex-VC100-MT-S-1_47.lib

4)libboost_regex-VC100-S-1_47.lib

是什麼2和3 .lib文件之間的差異?它們都是靜態庫。我已經閱讀了Boost文檔,但沒有找到太多的解釋。

TIA

回答

15

runtime-link指的是你的編譯器的運行時是如何聯繫在一起的。也就是說,它對應於VC的MultithreadedMultithreaded DLL選項。運行時意味着使用編譯器提供的標準庫所需的組件。

你可能已經看到在一些點的動態鏈接文件:MSVCRTXX.DLL(C運行時)和MSVCPXX.DLL(C++標準庫),MFCXX.DLL(MFC核心類)。靜態對應部分是LIBC和LICBP(請參見用於庫表的here

構建Boost時使用的運行時鏈接選項應與您用於客戶端代碼時的選項匹配。否則,您會在鏈接時或運行程序時由於運行時不匹配而導致錯誤。

在構建程序以使用動態鏈接運行時時,需要在部署應用程序時包含VC redistributable

link指您的建築物將鏈接到的增強庫的方式,可以是靜態或動態鏈接庫。

相關問題