FIX: Files in External Dependencies Folder Don't Persist (182937)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
  • Microsoft Visual C++, 32-bit Professional Edition 5.0

This article was previously published under Q182937

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/"
				

Modification Type:MajorLast Reviewed:10/24/2003
Keywords:kbBug kbfix kbide kbVC600fix KB182937