2011-02-13 58 views
3

我正在編譯我的應用程序/ MT和鏈接反對boost-mt-s庫(多線程靜態),但助推正規表達式庫(版本1.45)似乎是拉入/ MD msvcrt.lib,這會導致鏈接器錯誤。鏈接增強靜態正則表達式拉msvcprt

我可以使用/NODEFAULTLIB:msvcrt.lib解決問題,但我寧願修復它。這是一個已知的錯誤提升或我做了一些愚蠢的事情?

相關鏈接(/ VERBOSE:LIB)輸出:

搜索/boost/stage/lib\libboost_regex-vc100-mt-s-1_45.lib: 搜索C:\ Program Files文件\微軟的Visual Studio 10.0 \ VC \ LIB \ msvcprt.lib:

已完成搜索庫 鏈接:警告LNK4098:defaultlib'MSVCRT'與使用其他庫相沖突;使用/ NODEFAULTLIB:庫

回答

-1

簡短的答案是不使用多線程靜態配置,永遠。較新版本的Visual Studio甚至不允許將其作爲選項。

+0

雖然我正在編譯Visual Studio 2010(哪個新版本甚至不允許靜態鏈接?),可能是一個好建議? – gavinandresen 2011-02-15 13:39:36

1

我一般是C#/ Dot Net開發人員,但現在有一個本地Windows C++項目,它必須鏈接到靜態Boost庫。雖然我寧願在整個應用程序中使用dll /程序集(與安全相關),但它會指示其他情況。

我也在使用Visual Studio 2010,最初很難鏈接到靜態boost庫。我發現唯一的方法是創建一個新的Win 32靜態庫來與Boost庫互操作。