2013-07-12 55 views
0

我想使用boost :: thread。如何提升知道鏈接哪個LIB以及如何更改它?

當我嘗試編譯我的項目(VS2010)時,鏈接程序找不到名爲「libboost_thread-vc100-mt-1_47.lib」的庫。

  • 我不明白的第一件事是boost如何決定它需要鏈接到的lib名稱?我搜索了該字符串的升壓代碼,但找不到任何字符串。這個名字來自哪裏?

  • 如果我放置請求的庫,一切工作正常使用boost DLL,但我想靜態鏈接到庫,因此我有我想要的「libboost_thread-vc100-mt-s-1_47.lib」鏈接到,但升壓尋找其他文件。我如何使這個文件的boost鏈接,所以我將能夠靜態工作?

非常感謝! :-)

+1

它在各種配置頭文件中逐漸構建這些字符串,然後執行雜注註釋庫。如果沒有人會提供完整的答案;現在有點忙。 – Bathsheba

+0

[這可能有助於靜態鏈接提升](http://stackoverflow.com/questions/2560983/linker-problem-linking-boost-in-visual-studio-2008) – Borgleader

+0

@Borgleader - 我檢查了它,但它沒有幫助,因爲問題不是「前綴」,而是中間的「-s-」。 – TCS

回答

1
  • 我無法理解的第一件事是如何提振決定它需要鏈接到lib 名字?我搜索了該字符串的升壓代碼, ,但我找不到任何。這個名字來自哪裏?

這是自動鏈接功能。您可以看到如何在boost/config/auto_link.hpp標題中編寫鏈接庫的名稱。

  • 如果我把所要求的lib,一切使用升壓 DLL工作正常,但我想靜態鏈接到庫

確保您使用CRT靜態鏈接(項目屬性 - > C++ - >代碼生成 - >運行時庫...應該是/ MT或/ MTd)。然後,boost也會靜態鏈接到自動鏈接。

相關問題