FIX: C1024 or C1083 Error When INCLUDE Set to Root DirectoryLast reviewed: September 16, 1997Article ID: Q97809 |
7.00 | 1.00 1.50 | 1.00
MS-DOS | WINDOWS | WINDOWS NTkbtool kbfixlist kbbuglist The information in this article applies to:
SYMPTOMSAn attempt to compile an application fails and Microsoft C/C++ generates one of the following messages. For version 8.0:
fatal error C1083: Cannot open include file: 'stdio.h': Permission deniedFor version 7.0:
fatal error C1024: cannot open include file 'stdio.h'The application compiles correctly in Microsoft C version 6.0 for MS-DOS.
CAUSEThe INCLUDE environment variable specifies the root directory of a drive and a required header file is located in the root directory. This occurs most often when the MS-DOS SUBST command creates a drive letter for a subdirectory on a drive.
RESOLUTIONTo work around this problem, edit your AUTOEXEC.BAT file to replace the backslash character (\) in the directory specification with a forward slash character (/). For example, the modified SET statement would appear as follows:
set INCLUDE=C:/For a drive letter created with the SUBST command, omitting the backslash character entirely also works. For example:
set INCLUDE=M: STATUSMicrosoft has confirmed this to be a bug in the products listed at the beginning of this article. This bug was corrected in C/C++ version 9.0, included with Visual C++ 32-bit Edition, version 2.0.
MORE INFORMATIONPerform the following two steps to demonstrate this problem.
set INCLUDE=C:\ cl TEST.CIf your C/C++ INCLUDE directory is C:\C700\INCLUDE, the error also occurs if you enter the following at the MS-DOS command prompt:
subst M: C:\C700\INCLUDE set INCLUDE=M:\ cl TEST.CThe compiler uses the INCLUDE environment variable to specify the directories it searches for header files listed in the #include statement. The MS-DOS SUBST command can be used to substitute a drive letter for a directory path. For more information on the SUBST command, please refer to your "MS-DOS User's Guide and Reference" manual. Also note that the online help for MS-DOS version 6.0 states "Do not use the SUBST command when you are running Windows."
Sample Code
/* * Compile options needed: none */ #include <stdio.h> void main (void){ printf("Hello World\n");}
|
Additional reference words: 1.00 1.50 7.00 8.00 8.00c
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |