BUG: Include Directories Cannot End with a Backslash

ID: Q151898


The information in this article applies to:
  • The C/C++ Compiler (CL.EXE), used with:
    • Microsoft Visual C++, 32-bit Editions, versions 2.0, 2.1, 2.2, 4.0, 4.1, 4.2, 5.0, 6.0


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 

Additional query words: kbVC400bug

Keywords : kbCompiler kbVC200bug kbVC210bug kbVC220bug kbVC400bug kbVC410bug kbVC420bug kbVC500bug kbVC600bug
Version : winnt:2.0,2.1,2.2,4.0,4.1,4.2,5.0,6.0
Platform : winnt
Issue type : kbbug


Last Reviewed: May 15, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.