2010-04-01 127 views
0

在Visual Studio 2008中,我有一個相當模糊的鏈接問題。鏈接器錯誤消息是:「LNK1104:無法打開文件'boost_thread-vc90-mt-gd-1_38.lib'」。所有路徑和依賴關係都已設置。 但我注意到,雖然Visual Studio錯過了boost_thread-vc90-mt-gd-1_38.lib,而不是libboost_thread-vc90-mt-gd-1_38.lib(請注意文件名開頭的lib)。我將.lib作爲libboost_thread-vc90-mt-gd-1_38.lib添加到項目中,並在命令行中顯示爲libboost_thread-vc90-mt-gd-1_38.lib。在Visual Studio 2008中連接boost的鏈接器問題

爲什麼Visual Studio是文件名的開頭?

回答

1

有用於在升壓命名程序庫的規則:

1)boost_thread-VC90-MT-GD-1_38.lib用於動態鏈接版本 2)libboost_thread-VC90-MT-GD-1_38.lib爲靜態鏈接的版本

BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".

有一個預處理定義,你可以在你的項目中爲了使用Boost庫的動態鏈接版本定義BOOST_DYN_LINK=1

它有這樣的描述:

BOOST_DYN_LINK: Optional: when set link to dll rather than static library.

另一個定義通知使用Boost.Thread的動態版本是BOOST_THREAD_USE_DLL

+0

謝謝你,深的地方在項目中有設置爲使用DLL中的符號。 – 2010-04-01 14:40:35