2009-02-03 107 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