【问题标题】:Linker problems after switching to VS2005 from VC6 (LNK4099)从 VC6 切换到 VS2005 后的链接器问题 (LNK4099)
【发布时间】:2009-03-19 01:36:43
【问题描述】:

我将我的一个旧项目移植到 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++ visual-studio-2005 linker visual-c++-6 environment


    【解决方案1】:

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

    【讨论】:

    • 废话。该库不是我的.. :( 它是一个开源库,所以我会尝试一下.. 谢谢。
    【解决方案2】:

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

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

    【讨论】:

    • 是的,我确实有第三方库.. 有什么解决办法吗?
    【解决方案3】:

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

    我看到,如果您遇到零错误,您只会收到警告,而不是程序应该运行的错误。

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

    【讨论】:

      【解决方案4】:

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

      你需要重新编译一切

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-11
        • 2012-09-02
        • 2021-01-04
        • 1970-01-01
        相关资源
        最近更新 更多