Hi.
I just built ROOT from CVS as of today with gcc/g++/g77/libstdc++ v3.0
on a Debian x86 system.
I had a problem involving include files. In particular while
compiling TGLKernel.cxx:
g++ -O2 -pipe -Wall -fPIC -Iinclude -I/usr/include -o gl/src/TGLKernel.o -c gl/src/TGLKernel.cxx
In file included from /usr/include/g++-v3/bits/fpos.h:40,
from /usr/include/g++-v3/bits/std_iosfwd.h:41,
from /usr/include/g++-v3/iosfwd:31,
from include/TObject.h:45,
from include/TNamed.h:26,
from include/TVirtualX.h:28,
from gl/src/TGLKernel.cxx:23:
/usr/include/g++-v3/bits/std_cwchar.h:42:24: wchar.h: No such file or directory
The problem line (std_cwchar.h:42) is this:
#include_next <wchar.h>
According to "Inheritance and Header Files" in the GNU C pre processor
info page this "#include_next" directive (which is news to me) tells
CPP to include the file found by checking all -I directives after the
one which found the current file.
Since -I/usr/include is explicitly put on the command line, it is
checked before the internal -I directives and, evidently, not checked
again.
This -I/usr/include directive is inserted in the compile line by the
OPENGLINCDIR := /usr/include
line in config/Makefile.config (generated by configure). When I
remove it the compilation succeeds, but GL support is skipped. If I
do something like:
OPENGLINCDIR := /bogus/path
compilation succeeds, includeing GL support.
I'm not sure of a good way to handle this. Maybe a "--with-opengl"
option to "configure" which turns on GL support but doesn't add an
include path directive (leaving that to "--with-opengl-incdir").
It is currently the case, but I could see this same problem happening
in any of the ROOT packages where a standard system include path is
inserted in the command line.
-Brett.
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:52 MET