我已经下载了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
编辑:
我通过将其构建为动态库来解决它。虽然这不是我所希望的解决方案......
答案 0 :(得分:34)
使用调试符号编译静态库时,会获得此文件vc100.pdb以及库。在链接期间,此文件中的符号信息将与其他库的符号信息合并,以生成您要链接的EXE或DLL的最终PDB。链接器抱怨它找不到它希望找到它的文件。
这只是一个警告,它只会发生在调试版本中。如果在发布配置中编译FreeImage,则此警告应该消失。或者,找出链接器未找到vc100.pdb文件的原因。
给你的另一个答案是疯狂的废话。