如何修复(避免)"no debug info" 警告?

How to fix(avoid) "no debug info" warning?

每次构建解决方案时,我都会收到这样的警告通知。据我了解,这意味着我的解决方案使用任何没有带调试符号文件的库。

9>strmbasd.lib(amfilter.obj) : warning LNK4099: PDB 'BaseClasses.pdb' was not found with 'strmbasd.lib(amfilter.obj)' or at 'D:\Tier\x64\Debug\BaseClasses.pdb'; linking object as if no debug info
9>strmbasd.lib(amvideo.obj) : warning LNK4099: PDB 'BaseClasses.pdb' was not found with 'strmbasd.lib(amvideo.obj)' or at 'D:\Tier\x64\Debug\BaseClasses.pdb'; linking object as if no debug info
9>strmbasd.lib(combase.obj) : warning LNK4099: PDB 'BaseClasses.pdb' was not found with 'strmbasd.lib(combase.obj)' or at 'D:\Tier\x64\Debug\BaseClasses.pdb'; linking object as if no debug info
9>strmbasd.lib(mtype.obj) : warning LNK4099: PDB 'BaseClasses.pdb' was not found with 'strmbasd.lib(mtype.obj)' or at 'D:\Tier\x64\Debug\BaseClasses.pdb'; linking object as if no debug info
9>strmbasd.lib(wxdebug.obj) : warning LNK4099: PDB 'BaseClasses.pdb' was not found with 'strmbasd.lib(wxdebug.obj)' or at 'D:\Tier\x64\Debug\BaseClasses.pdb'; linking object as if no debug info
9>strmbasd.lib(wxlist.obj) : warning LNK4099: PDB 'BaseClasses.pdb' was not found with 'strmbasd.lib(wxlist.obj)' or at 'D:\Tier\x64\Debug\BaseClasses.pdb'; linking object as if no debug info
9>strmbasd.lib(wxutil.obj) : warning LNK4099: PDB 'BaseClasses.pdb' was not found with 'strmbasd.lib(wxutil.obj)' or at 'D:\Tier\x64\Debug\BaseClasses.pdb'; linking object as if no debug info

据我所知,如果你不打算调试这个库,这并不重要(实际上我什至不知道解决方案在哪里使用它......我读了一篇文章,其中解释了如何修复这样的问题,我需要逆向工程一个库,然后找到一个符号,再经过一些魔术动作,所以长话短说,对于我来说这样的警告非常复杂。

问题是 - 是否有简单的方法来修复或避免这些库出现此警告?

转到构建->属性->链接器->命令行

并添加

/ignore:4099

缺少 PDB 文件意味着您的输出将只有部分调试信息,并且会缺少来自静态链接库的部分。没什么大不了的,但是如果您使用 BaseClasses.pdb 添加目录(设置的链接器部分中的 AdditionalLibraryDirectories),将在链接过程中找到该文件。

抑制警告是清理输出日志的最后手段。