BUG: Include Directories Cannot End with a Backslash (151898)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Editions 2.0
  • Microsoft Visual C++, 32-bit Editions 2.1
  • Microsoft Visual C++, 32-bit Editions 2.2
  • Microsoft Visual C++, 32-bit Editions 4.0
  • Microsoft Visual C++, 32-bit Editions 4.1
  • Microsoft Visual C++, 32-bit Enterprise Edition 4.2
  • Microsoft Visual C++, 32-bit Enterprise Edition 4.2b
  • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
  • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
  • Microsoft Visual C++, 32-bit Professional Edition 4.2
  • Microsoft Visual C++, 32-bit Professional Edition 4.2b
  • Microsoft Visual C++, 32-bit Professional Edition 5.0
  • Microsoft Visual C++, 32-bit Professional Edition 6.0
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ .NET (2002)
  • Microsoft Visual C++ .NET (2003)

This article was previously published under Q151898

SYMPTOMS

The compiler ignores some or all of the Command Line options that appear after the /I switch.

CAUSE

The compiler incorrectly parses the additional Include Directory Command Line switch if its argument ends with a backslash followed by a quotation mark. The compiler interprets the \" sequence as meaning the path contains a quotation mark.

If you set the additional Include Directories from within Developer Studio, double quotes are automatically placed around the directory name. If there is a backslash at the end of the directory name, this problem occurs.

RESOLUTION

Remove the trailing backslash character from the Include Directory.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

MORE INFORMATION

Sample Code

// Compile options needed to generate error (compiler will not detect
// the /D"_CMDLINE":)
//    CL /c test.cpp /I"test\" /D"_CMDLINE"
// 
// Compile options needed for successful compiling (compiler will
// detect the /D"_CMDLINE":)
//    CL /c test.cpp /I"test" /D"_CMDLINE"

// test.cpp
// 
#ifdef _CMDLINE
#pragma message("Program compiled with _CMDLINE defined.")
#else
#pragma message("Program compiled without _CMDLINE defined.")
#endif
				

Modification Type:MinorLast Reviewed:7/5/2005
Keywords:kbBug kbCompiler KB151898