This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
cpp, CPLUS_INCLUDE_PATH, and g++: bug or feature?
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 22 Jun 2005 21:47:21 +0200 (CEST)
- Subject: cpp, CPLUS_INCLUDE_PATH, and g++: bug or feature?
Consider the following program, which resides in a directory different
from $HOME. Call it test.c, and put an empty test.h into $HOME.
#include "test.h"
#include <stdio.h>
int main() { printf("hi"); }
If one tries to compile this, GCC issues an error (So far so good):
% gcc x.c
x.c:1:18: test.h: No such file or directory
So I set C_INCLUDE_PATH accordingly and, still as expected, get:
% export C_INCLUDE_PATH=$HOME ; gcc x.c
%
However, once I use the g++ driver to compile this program the error
is back:
% g++ x.c
x.c:1:18: test.h: No such file or directory
Which I believe contradicts the following from cppenv.texi, since even
though we use the g++ driver, the program still is compiled as C input:
The[se] environment variables apply only when preprocessing the
particular language indicated.
Interestingly, though, the preprocessor does set __cplusplus, so it
seems g++ preprocesses .c files as C++, but then compiles them as C.
Feature, bug, or potential to improve documentation?
Gerald