2009-02-03 102 views
0

後加載在Visual Studio 2008中現有的MFC應用程序,我留下一個鏈接錯誤:神祕的相對路徑庫依賴

LINK : fatal error LNK1104: cannot open file '..\..\xpressmp\lib\xprm_rt.lib' 

我已經看過「遍地開花」,但我想不通的地方相對路徑設置。 lib文件位於C:\ xpressmp \ lib中,我在Tools-Options-> Projects and Solutions-> VC++ Directories-> Library files和Project-> Properties-> Linker-> Additional下添加了這個目錄庫目錄。我也搜索了該項目中的所有文件無濟於事。

我有用於調試和發佈的其他依賴項下列出的庫文件(xprm_rt.lib)。我也嘗試在那裏添加路徑,但這沒有幫助。我找不到任何#pragma評論指示。

關於LNK1104,該文件顯然不存在於鏈接程序正在搜索的位置。但我不明白爲什麼它在那裏搜索(..\..\ ...),因爲我沒有指定任何相對路徑。

任何幫助表示讚賞:-)

UPDATE: 在項目.vcproj文件,我發現下面的xml:

<File RelativePath="..\..\XpressMP\lib\xprm_rt.lib"></File> 
<File RelativePath="..\..\XpressMP\lib\xprs.lib"></File> 

刪除這些行(?他們都在何處設置)後,我能夠成功鏈接。感謝您的幫助,似乎VS的相關庫路徑確實被「自動」追加。

謝謝你們,我認爲這是讓我走上正軌的尼克。

回答

0

這聽起來像一對夫婦可能一個對我說:

  • 本身設置的lib庫通過的#pragma評論包括路徑( lib,...)指令;搜索庫標題以查看是否是這種情況
  • 您的解決方案中包含您的主項目所依賴的庫的項目,並且VC自動附加相關的庫路徑;檢查主項目的命令行屬性頁,看看是否是這種情況

這就是我所能想到的哪些可能導致錯誤;希望能幫助到你。

2

在項目屬性中,查看每個項目配置(調試,發佈等)的配置屬性 - >鏈接器 - >輸入 - >附加依賴關係。此外,請在代碼中查找#pragma comment(lib, ...)指令。

正如你已經添加了C:\xpressmp\lib文件夾,在VC++目錄庫搜索路徑,檢查發現只有一個庫文件名是根據附加依賴指定的,這不包括路徑(即,xprm_rt.lib,不..\..\xpressmp\lib\xprm_rt.lib)。

另外,您是否嘗試過LNK1104 error documentation中的每個解決方案?

0

非常感謝您的回答!

我有用於調試和發佈的其他依賴項下列出的庫文件(xprm_rt.lib)。我也嘗試在那裏添加路徑,但這沒有幫助。我找不到任何#pragma comment-directives。

關於LNK1104,該文件顯然不存在於鏈接程序正在搜索的位置。但我不明白爲什麼它正在尋找有(..\..\...

+0

答案是答案。使用評論或編輯問題進行回覆。 – ephemient 2009-02-03 14:47:40