在 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 and Project->Properties->Linker->Additional 下添加了此目录图书馆目录。我也搜索了项目中的所有文件,但没有结果。
我在调试和发布的附加依赖项下列出了库文件 (xprm_rt.lib)。我也尝试在那里添加路径,但这没有帮助。我找不到任何#pragma comment-directives。
关于LNK1104,该文件显然不存在于链接器正在搜索的位置。但我不明白为什么它在那里搜索(
..\..\
...),因为我没有指定任何相对路径。
任何帮助表示赞赏:-)
更新: 在项目.vcproj文件中,我发现了以下xml:
<File RelativePath="..\..\XpressMP\lib\xprm_rt.lib"></File>
<File RelativePath="..\..\XpressMP\lib\xprs.lib"></File>
删除这些行后(它们在哪里设置?),我能够成功链接。感谢您的帮助,看来相对库路径确实是由 VS “自动”附加的。
谢谢你们俩,我想是尼克让我走上了正轨。
在项目属性中,查看“配置属性”->“链接器”->“输入”->“附加依赖项”,了解每个项目的配置(调试、发布等)。另外,在代码中查找
#pragma comment(lib, ...)
指令。
当您将
C:\xpressmp\lib
文件夹添加到 VC++ 目录中的库搜索路径时,请检查“附加依赖项”下是否仅指定了库文件名,并且这不包括路径(即 xprm_rt.lib
,而不是 ..\..\xpressmp\lib\xprm_rt.lib
)
)。
另外,您是否尝试过LNK1104错误文档中的每个解决方案?
对我来说这听起来像是几种可能性之一:
#pragma comment(lib, ...)
指令设置 lib 路径;搜索库标题看看是否是这种情况这就是我能想到的可能导致错误的原因;希望有帮助。
感谢您这么快回复!
我在调试和发布的附加依赖项下列出了库文件 (
xprm_rt.lib
)。我也尝试在那里添加路径,但这没有帮助。我找不到任何 #pragma comment
指令。
关于LNK1104,该文件显然不存在于链接器正在搜索的位置。但我不明白为什么它在那里搜索(
..\..\...
)