2

我们正在使用 Visual Studio 2008 构建一个相当大且复杂的程序,该程序具有大量依赖项。当我们在 Windows 测试系统上运行 64 位构建时,它无法运行有关某些 SxS 问题的警告。

经过一番挖掘,我们意识到清单文件包含

<dependentAssembly>
    <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>

我查看了构建日志并将项目链接到/VERBOSE:LIB并查看

1>LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
...
1>Searching libraries
...
1>    Searching c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64\MSVCRTD.lib:

我运行dumpbin /DIRECTIVES了所有 .obj 文件,但没有看到对 msvcrtd.lib 的引用

这是一个发布版本。为什么它试图在 MSVCRTD 中链接?

有没有办法可以生成从 msvcrtd 链接的函数表?

谢谢

4

1 回答 1

1

哎呀,问这个问题有点太仓促了。解决方案是添加/MAP到链接器选项。

于 2013-10-19T00:16:05.917 回答