PRB: Error C2858: Command-line Options Inconsistent (121889)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Editions 1.0
  • Microsoft Visual C++, 32-bit Editions 2.0
  • Microsoft Visual C++, 32-bit Editions 4.0
  • Microsoft Visual C++, 32-bit Editions 5.0
  • Microsoft Visual C++, 32-bit Editions 6.0

This article was previously published under Q121889

SYMPTOMS

When building a file from an existing application that uses precompiled header files, the compiler produces the following error if the source drive letter has changed:
   error C2858: command-line option 'program database name
   (/FdN:\test.pdb)' inconsistent with precompiled header,
   which used '/FdM:\test.pdb'
				

CAUSE

The compiler stores and uses an absolute path to the precompiled header file, not a relative path.

RESOLUTION

Microsoft recommends that you rebuild an application when moving its source code or when connecting with a different drive letter.

MORE INFORMATION

The following sample code demonstrates the behavior. If the two files shown below are compiled from the M: drive and later TEST2.CPP is compiled from the N: drive, the error will occur.

Sample Code

/* Compile options needed: /Zi /Fp"test.pch" /Yc
   TEST1.CPP
*/ 

#include <iostream.h>

void main()
{
}

/* Compile options needed: /Zi /Fp"test.pch" /Yu"iostream.h"
   TEST2.CPP
*/ 

#include <iostream.h>

void sub()
{
}
				

Modification Type:MinorLast Reviewed:7/5/2005
Keywords:kbCompiler kbCPPonly kbprb KB121889