从 VC6 切换到 VS2005 后的链接器问题 (LNK4099)

问题描述 投票:0回答:4

我将我的一个旧项目移植到 VS2005 并收到链接器警告,例如

xxxxx.lib(xxxxxxxx.obj) : warning LNK4099: PDB 'vc60.pdb' was not found with ...; linking object as if no debug info

现在,我尝试重建项目,但警告不会消失。它真的应该寻找 vc60.pdb 而不是 vc80.pdb 吗?我有 vc80.pdb 文件..

谢谢

visual-c++ linker visual-studio-2005 development-environment visual-c++-6
4个回答
4
投票

您有一个 .obj 链接到您的 .lib 中,其中包含调试信息;该调试信息具有指向 vc60.pdb 的链接。如果 .lib 是您自己的,则需要重新编译源代码并重建 .lib 文件以更新该引用。如果 .lib 不是你的,你将不得不忽略这个警告并且将无法调试到该特定目标文件的源代码。


1
投票

VS2005 通常不应查找 vc60.pdb,尤其是在完全重建之后。

也许你有一些第三方库没有重新编译并且仍然包含对旧调试信息的引用?


0
投票

通常创建 .pdb 文件类型用于调试目的。根据我在 .pdb 文件类型上发现的一些信息,它说“此文件包含在调试模式下执行程序时使用的调试信息”。

我看到你只收到警告而不是错误,如果你得到零错误,程序应该运行。

我相信你唯一需要这个文件的时候是为了调试或分析。通常在最终构建中使用发布设置以获得最快的程序执行速度。希望这有帮助。


0
投票

这可能是一些用VS2005编译的.lib文件。

你需要重新编译一切.

© www.soinside.com 2019 - 2024. All rights reserved.