2012-03-13 20 views
0

我想避免只爲boost::Thread建立一個完整的庫。所以我將libs/Thread中的cpp文件添加到我的項目中,並在MacOS上的GCC下工作。boost ::線程沒有庫窗口

然而,在Windows的Visual Studio告訴我

LINK:致命錯誤LNK1104:無法打開文件 'libboost_thread-VC100-MT-S-1_47.lib'

這似乎不正確對我來說,自AFAIK我沒有添加圖書館的要求,我的項目。爲什麼要我補充一點,如何在不改變項目設置的情況下進行提升?

還是我錯了畢竟...

任何想法?

回答

2

將BOOST_ALL_NO_LIB添加到您的預處理器定義中將使Windows的「自動鏈接」增強包保持不變。

+0

非常感謝,與BOOST_THREAD_BUILD_LIB一起解決了問題! – clemens 2012-03-14 14:22:23

1

Boost使用#pragma comment(lib, library_name)來告訴編譯器與特定的庫鏈接。如果您不想使用該名稱的庫中的代碼,則可能需要找到#pragma並刪除(或更改)它。或者,您可以在鏈接器上使用nodefaultlib選項。

另一種方法是使用bcp來提取您想要的Boost的部件,然後構建並使用它創建的庫。

+0

謝謝,這解釋了他們是如何做到的:) – clemens 2012-03-14 14:21:54