我已经下载了 FreeImage 源代码并自己为 X64 MT DLL 进行了静态构建。
一切正常,除了当我在 freeimage.lib 文件中使用链接时,我收到很多烦人的链接器警告,我不太了解原因?
2>freeimage.lib(zutil.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'freeimage.lib(zutil.obj)' or at '\bin\Release\vc100.pdb'; linking object as if no debug info
...就这样连续不断...
是什么原因造成的,我该如何摆脱它?我猜这是我构建 FreeImage 时的一些编译器选项。
这是 FreeImageLib 项目的命令行:
/I"..\" /I"..\ZLib" /I"..\DeprecationManager" /I"..\OpenEXR\Half" /I"..\OpenEXR\Iex" /I"..\OpenEXR\IlmImf" /I"..\OpenEXR\Imath" /I"..\OpenEXR\IlmThread" /nologo /W3 /WX- /Od /D "WIN32" /D "_DEBUG" /D "OPJ_STATIC" /D "FREEIMAGE_LIB" /D "_CRT_SECURE_NO_DEPRECATE" /D "LIBRAW_NODLL" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /GF- /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Fp".\Debug/FreeImageLib.pch" /Fa".\Debug/" /Fo".\Debug/" /Fd".\Debug/" /Gd /errorReport:queue
编辑:
我通过将其构建为动态库来解决它。虽然这不是我所希望的解决方案......
最佳答案
当您使用调试符号编译静态库时,您会得到这个文件 vc100.pdb 以及库。此文件中的符号信息将在链接期间与其他库的符号信息合并,以生成您要链接的 EXE 或 DLL 的最终 PDB。链接器提示它无法在预期的位置找到该文件。
这只是一个警告,它只会在调试版本中发生。如果你在发布配置中编译 FreeImage,这个警告应该会消失。或者,找出链接器找不到 vc100.pdb 文件的原因。
给你的另一个答案是疯狂的胡说八道。
关于c++ - 找不到 PDB 'vc100.pdb',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460623/