2015-06-04 59 views
2

我已經將我的C++項目從VS2008升級到VS2015。
Platform Toolset設置爲Visual Studio 2015 (v140)。如果重要,Target Platform Version設置爲8.1升級到VS2015的C++項目,但鏈接器仍在尋找VC100 Boost庫

我使用toolset=msvc-14.0構建了boost,並將構建的庫放置到項目期望的位置。

當我建立我的項目,我得到一個鏈接錯誤:

LNK1104 cannot open file 'libboost_thread-vc100-mt-1_43.lib' 

爲什麼找vc100庫,而不是一個vc140


  1. 這是第一個項目出2是失敗的。
  2. .vcproj文件中沒有參考,我可以看到vc100
+0

你完全重建了你的項目嗎?你有沒有在文本編輯器中打開項目文件,以確保在轉換後沒有任何指向vc100的剩餘物? – doqtor

+0

您使用的是什麼版本的boost?它是否知道VS 2015? – sjdowling

回答

2

在Windows上鍊接到boost庫是通過自動鏈接和#pragma指令自動完成的。它看起來要鏈接的版本號是在boost \ config \ auto_link.hpp中定義的,它在你的MSVC版本中經過了一堆#if#elif s,並且如果版本高於它知道的任何版本,那麼它只是將版本號設置爲它知道的最高版本號。對於升級1.57,這是vc140,爲您的版本的推動,可能是VC100。

+0

謝謝,我會研究這個。你知道我是否應該遇到升級到1.57的任何問題? – Coxy

+0

@Coxy取決於你正在使用的boost庫。有不同程度的質量和穩定性的Boost提供了這麼多的庫。我已經看到升級Boost序列化會很痛苦。一般來說,升級相當頻繁且逐步升級更好,而不是十年內兩次實現全球升級的巨大突破。 – sjdowling

+0

我編輯了auto_link.hpp,但看起來線程和wave不會在vs140下生成。我會嘗試1.57。 – Coxy