I am using a 3rd party SDK to build one sample DLL application. I am using their static lib to link with my project.

During linking, I am getting the following warning message:

gdal.lib(cplgetsymbol.obj) : warning LNK4099: PDB 'vc80.pdb' was not found with '..\dev\dw32\gdal.lib' or at '..\dev\dw32\vc80.pdb'; linking object as if no debug info

There are lots of such warnings. I am using VS2005 to build my application.

In code generation I am using Multi Threaded Debug DLL (/MDd).

Can you tell me the way to remove LNK 4099 warnings and what is the cause for this



Re: Visual C++ Language LNK4099 problem.

Chuck the Code Monkey

"Linker Tools Warning LNK4099"

Re: Visual C++ Language LNK4099 problem.


I have also tried out this link. See here the problem is not in the code but it is in the .lib file That I am using.

So it is giving me linker warnings and nothing can be done at file level.

So please think and give me solutions.

Anybody who works for Microsoft, if you can, please do it.

Re: Visual C++ Language LNK4099 problem.

Bite Qiu - MSFT

Hi Sunil,

I am afraid there is not much you can do about it. You see this warning because the third-party library was complied with either /Zi or /ZI compiler option, so a link to vc80.pdb was added to the .obj files in the library. When you link the library to your project, linker will looking for that vc80.pdb file but of course you don't have it. So this means you can safely ignore that warning because it is just annoying. Normally you can use /ignore linker setting to ignore certain linker warnings, unfortunately this does not work for LNK4099 warning(see a list of not unignorable warnings). If, however, you can talk to the library publisher, you may ask for a rebuild version SDK(without /Zi and /ZI of crouse) to fix the issue.

hope it helps


Re: Visual C++ Language LNK4099 problem.


I have a solution with 7 projects. 6 of them are static libraries, 1 is an executable. Obviously executable links to all the statics. All /mdd(/md) . All Zi(ZI). No third party components, but Microsoft's. If I pre-build static libraries outside in another solution - I'll get this warning. If I do rebuild all , which kind of defeats the purpose, I do not get that warning. It seems like a bug in the Visual studio to me, but I might be wrong.