Article: Q182937
Product(s): Microsoft C Compiler
Version(s): WINNT:5.0
Operating System(s):
Keyword(s): kbide kbVC kbVC500bug kbVC600fix kbGrpDSTools
Last Modified: 17-JUL-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++, 32-bit Enterprise Edition, version 5.0
- Microsoft Visual C++, 32-bit Professional Edition, version 5.0
-------------------------------------------------------------------------------
SYMPTOMS
========
No files appear in the External Dependencies folder until you export a makefile
or rebuild the project.
When you close the workspace, the dependency information is not saved.
When you edit a header file and build the project, the header file is saved but
no files are compiled.
CAUSE
=====
The program database (a .pdb file) has been given a name without an extension or
a trailing slash (\).
For example, on the Project menu, click Settings. Click the C/C++ tab; in the
Project Options edit box you see a switch similar to the following:
/Fd"Debug\mypdb"
RESOLUTION
==========
If you want to name the .pdb file, then append the .pdb extension to the name:
/Fd"Debug\mypdb.pdb"
If you want to specify the directory in which to place the VC50.pdb file, then
append a trailing slash to the name:
/Fd"Debug\mypdb\"
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article. This problem was corrected in Microsoft Visual C++
6.0.
MORE INFORMATION
================
It is normal for project dependency information not to be available until the
project is built or until a makefile is exported. However, when a project is
built with the /FD switch, the compiler creates a file that contains the
dependency information for the project. This file has the same base name as the
program database (.pdb) file. By default, the file is VC50.idb.
Once a project is built, Developer Studio uses the dependency information from
the .idb file (unless you encounter this bug).
If you export a makefile, an .idb file is not generated. Dependency information
generated to export the makefile is lost when you close the workspace. This is
by design.
Steps to Reproduce Behavior
---------------------------
1. Build a project.
2. On the Project menu, click Settings. Click the C/C++ tab, and in the Project
Options edit box, name the .pdb file without an extension. For example, in a
sample named AutoBld, you would use the following switch:
/Fd"Debug/AutoBld"
3. Make a change to a header file.
4. Build the project.
Result: 0 error(s), 0 warning(s)
Expected: something should compile
To work around this bug, use one of the following:
/Fd"Debug/AutoBld.pdb"
-or-
/Fd"Debug/AutoBld/"
Additional query words:
======================================================================
Keywords : kbide kbVC kbVC500bug kbVC600fix kbGrpDSTools
Technology : kbVCsearch kbAudDeveloper kbVC500 kbVC32bitSearch kbVC500Search
Version : WINNT:5.0
Issue type : kbbug
Solution Type : kbfix
=============================================================================