2015-04-29 78 views
11

我一直在嘗試幾天以獲得提升,以使用我的Visual Studio 2013 Premium安裝。我試着用Zip安裝,現在用NuGet。這兩種方法都讓我看到了鏈接器錯誤的相同點。VS2013 Boost使用NuGet

錯誤:1> LINK:致命錯誤LNK1104:無法打開文件 'libboost_system-VC120-MT-GD-1_57.lib'

我通過升壓郵件列表看了一下,發現有人張貼了類似的問題,但那是2012年以來boost_1_54_0之類的事情,所以VS2013或者1_58_0都沒什麼關係。

我也看過一些論壇帖子,包括SO,但他們都沒有我遇到的同樣的問題。要麼這樣,要麼他們根本沒有答覆。

我不能真正辨別錯誤顯示的任何標誌,因爲這是我第一次使用除STL庫或我自己的標題以外的任何其他標誌。

任何和所有的幫助,將不勝感激,讓我知道如果有任何其他的額外信息,將是有益的。

回答

15

我懷疑你安裝簡單地命名爲 「提升」 的NuGet包。這似乎包含所有的Boost頭文件,但沒有編譯的庫。如果您只想使用僅包含頭文件的Boost庫(即大多數庫),那很好。

你真正想要的是名爲「boost-vc120」的包(vc120是指VC++ 12.0,它是VS2013附帶的VC++版本)。這也有所有的圖書館。您會注意到安裝需要很長時間。

無論哪種情況,NuGet都會負責設置所有必要的VC++目錄設置。不需要進一步的配置。

+0

我剛安裝了boost-vc120軟件包,它似乎工作。我最初避免它,因爲我誤解了描述,並認爲我看到「Windows XP」。我現在的解決方案都提升了boost-vc120軟件包。這是否會影響任何東西,如果我刪除了常規的提升? – user3857017

+0

@ user3857017 - 刪除提升應該沒有效果,但如果確實如此,您可以隨時刪除boost-vc120,然後重新安裝它。 – Ferruccio

+0

好的。我只是問,因爲提升是一個非常大的包裹,只是無緣無故坐在那裏。 – user3857017

0

文件libboost_system-vc120-mt-gd-1_57.lib是否存在於您的硬盤上?

如果是,您是否將.lib添加到鏈接器/輸入/附加依賴項?

enter image description here

+0

我從來沒有想過要去那裏,只是上課,但當我回來時,我會檢查。我目前只是使用任何NuGet設置和安裝與提升。 – user3857017

+1

庫文件名不需要添加到該列表中。在MSVC上,boost頭文件使用'#pragma comment(lib,「...」)指令自動指定庫名稱。最重要的是將包含所有boost'.lib'文件的*目錄*添加到'Linker - > General - > Additional Library Directories'。 – bogdan

+0

我沒有設法找到該文件,但我確實通過另一個回覆中的另一個boost包得到了它的工作。雖然謝謝! – user3857017

2

Boost NuGet包的結構是here。您可以使用boost-vc120,但它會將所有boost庫下載到您的項目中。因此,如果您想節省磁盤空間,請使用boost軟件包,該軟件包提供了頭文件和特定的二進制軟件包。在你的情況下,它是boost_system-vc120

由於二進制包(如boost-vc120/boost_system-vc120)依賴於它,所以無法刪除boost包。

+1

'boost-vc120'將下載所有的boost庫,但它只會鏈接您在項目中實際使用的庫。 Boost利用其頭文件中的VC++'#pragma comment(lib)'指令來指定需要鏈接的庫。 – Ferruccio

+0

當然,我修復了答案。謝謝。 –