Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

warning LNK4099: PDB 'vc80.pdb' was not found

2,562 views
Skip to first unread message

sdiverdi

unread,
Oct 22, 2008, 2:49:21 PM10/22/08
to
This is with Visual Studio 2005, C++.

I've been living with a bunch of LNK4099 warnings, that 'vc80.pdb' was
not found, for a while now, and I'd like to actually try to get rid of
them. They're obscuring _actual_ errors and warnings in my build
output.

The situation is I build static libraries in other solutions, and then
in my main solution, I link to those static .lib files. In the static
libraries, I specify Program Database (/Zi), but .pdb files are not
generated (static libraries don't have the linker settings, just the
librarian settings, which don't include options for .pdb file
generation). However, in my main solution when I link to those .lib
files, I get the warnings about missing .pdb files.

Incidentally, when I build static libraries from projects within the
same solution and then link to them (in a single build step) I don't
get these warnings.

So, is there a way to generate .pdf files for my static libraries?
Should I switch my static libraries to use C7 debug format (/Z7), and
if so, what about static libraries I get from elsewhere, that I can't
recompile? Other ideas?

Thanks,

-stephen diverdi
-stephen...@gmail.com

sdiverdi

unread,
Oct 22, 2008, 3:14:33 PM10/22/08
to
On Oct 22, 11:49 am, sdiverdi <stephen.dive...@gmail.com> wrote:
>
> So, is there a way to generate .pdf files for my static libraries?
> Should I switch my static libraries to use C7 debug format (/Z7), and
> if so, what about static libraries I get from elsewhere, that I can't
> recompile?  Other ideas?
>
Upon a little more investigation, I've found that .pdb files _are_
generated for the static libraries, but that they are not moved into
the output directory with the .lib file (and there's no opportunity to
rename them). The situation is this - building static library (call
it static.lib) generates a lot of .obj files in the temporary
directory, as well as vc80.pdb. Then, static.lib is assembled in the
output directory, but vc80.pdb is not copied over. For a dynamic
library, dynamic.lib and dynamic.dll are assembled in the output
directory, and the vc80.pdb file in the temporary directory is copied
(and optionally renamed) to the output directory as well.

What a pain! I guess I can create a post-build event to copy and
rename the .pdb files for the static libraries manually? Argh.

-stephen diverdi
-stephen...@gmail.com

Mark Salsbery [MVP]

unread,
Oct 22, 2008, 4:23:27 PM10/22/08
to
"sdiverdi" <stephen...@gmail.com> wrote in message
news:f2cccb1a-424d-40a7...@b2g2000prf.googlegroups.com...

> On Oct 22, 11:49 am, sdiverdi <stephen.dive...@gmail.com> wrote:
>
> Upon a little more investigation, I've found that .pdb files _are_
> generated for the static libraries, but that they are not moved into
> the output directory with the .lib file (and there's no opportunity to
> rename them).


You can specify the name and location of the pdb file.

See project settings/C++/Output Files/Program Database File Name.

Mark


--
Mark Salsbery
Microsoft MVP - Visual C++

sdiverdi

unread,
Oct 22, 2008, 6:22:17 PM10/22/08
to
On Oct 22, 1:23 pm, "Mark Salsbery [MVP]"

<MarkSalsbery[MVP]@newsgroup.nospam> wrote:
>
> You can specify the name and location of the pdb file.
>
> See project settings/C++/Output Files/Program Database File Name.
>
Awesome, thank you! I've looked through all the settings multiple
times, but missed it each time. *sigh*

-stephen diverdi
-stephen...@gmail.com

0 new messages