0

Each time when I built my solution I get such warning notification. As far as I understand it means that my solution uses any libs that don't have files with debug symbols.

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

As far as I understood this is not critical if you are not going to debug this libs (actually I don't even know where the solution is using it... I read an article where was explanation how to fix such an issue, I need to reverse engineer a lib, then find a symbols, after a few magic actions more, so to make a long story short it's very complicated for such warning as for me.

Question is - is there a simple way to fix this warning or avoid it for these libs?

Roman R.
  • 68,205
  • 6
  • 94
  • 158
Sirop4ik
  • 4,543
  • 2
  • 54
  • 121
  • this question might be related https://stackoverflow.com/questions/25843883/how-to-remove-warning-lnk4099-pdb-lib-pdb-was-not-found – sergiom Nov 25 '20 at 12:41
  • @sergiom yeap, this link is what I mentioned in my question. I think it is too much magic – Sirop4ik Nov 25 '20 at 12:47

2 Answers2

1

Go to Build->Properties->Linker->Command Line

and add

/ignore:4099

enter image description here

user93353
  • 13,733
  • 8
  • 60
  • 122
  • looks exactly what I need. Just want to clarify (if you know) if there is a drawbacks? – Sirop4ik Nov 25 '20 at 12:48
  • @AlekseyTimoshchenko - Drawback is that you won't get the warning even if you aren't having a pdb for a lib/obj which you have accidentally missed – user93353 Nov 26 '20 at 02:01
1

Missing PDB file means your output will have only partial debug information and will miss the part from statically linked library. Not a big deal but if you add directory with BaseClasses.pdb (AdditionalLibraryDirectories in Linker section of settings) the file will be found during linking process.

Suppressing a warning is a last resort to clean output log.

Roman R.
  • 68,205
  • 6
  • 94
  • 158
  • Something associated with a sound, maybe you can suggest smth https://stackoverflow.com/q/65023000/5709159 – Sirop4ik Nov 26 '20 at 13:28