2013-07-10 1417 views
2

我在這裏得到了一個使用Intel Composer XE 2013的庫,我想將它編譯爲.lib,因爲我打算將它與另一個項目一起使用(It默認編譯爲application/EXE)。但是,當我在Visual Studio 2012配置管理器下的Project Defaults下設置配置類型時,出現「錯誤LNK1181:無法打開輸入文件」。奇怪的部分是它查找的文件沒有文件結尾。該項目包含C,C++和ASM代碼。有沒有人有過這種行爲的經驗?錯誤LNK1181:編譯爲.LIB時無法打開輸入文件

+0

您是否試圖從64位項目配置鏈接到32位庫,反之亦然? –

+0

我的設置是x64,但是當我編譯爲EXE或LIB時,配置都是x86。我不是指我的項目,因爲我甚至不能將它編譯爲LIB。 – Martin

回答

0

我解決了問題,通過重命名的obj沒有文件擴展名的文件。例如,它正在尋找文件名「foo」,我有「foo.obj」,因此我將「foo.obj」重命名爲「foo」。

+0

這有多可靠?它以後會導致錯誤嗎? – shawnru

2

錯誤LNK1181一些常見原因有:

  • 文件名被引用作爲鏈接 線一個額外的依賴,但該文件不存在。
  • 缺少指定包含文件名 的目錄的A/LIBPATH語句。

要解決上述問題,請確保鏈接器行上引用的任何文件都存在於系統中。

使用/ LIBPATH選項覆蓋環境庫路徑。鏈接器將首先在此選項指定的路徑中搜索,然後搜索LIB環境變量中指定的路徑。您可以爲每個輸入的/ LIBPATH選項指定一個目錄。如果您要指定多個目錄,則必須指定多個/ LIBPATH選項。鏈接器將按順序搜索指定的目錄。

要在Visual Studio開發環境

  1. 打開項目的屬性頁對話框中設置此鏈接器選項。
  2. 單擊鏈接器文件夾。
  3. 單擊「常規」屬性頁。
  4. 修改其他庫目錄屬性。

如果沒有再幫你可以看看通過這些鏈接:

+0

由於某些原因,當我選擇使用Intel編譯器時,項目屬性下的鏈接器設置消失:http://i.imgur.com/neag3ti.png – Martin

+0

這正是我的想法,但由於某種原因,我的鏈接器錯誤說:錯誤LNK1181:即使將其放入C:\ My \ Include \ Directory並將其添加到其他庫目錄中,也無法打開輸入文件'C:\ Users \ my \ long \ project \ path \ Debug \ MyLib.lib'。這太奇怪了。我遵循微軟的幫助頁面:http://support.microsoft.com/kb/815645,但沒有運氣 - 我的目錄路徑中沒有空間... –

相關問題