Re: [Fresco-devel] Fresco CVS build problems

Stefan Seefeld <[email protected]> Tue, 25 Mar 2003 20:34:25 -0500
Newsgroups gmane.comp.video.fresco.devel
Message-ID <[email protected]>
Iain Nicholson wrote:

> In all of these files except GraphDebugger.cc, I had to change #include
> <streambuf> to #include <streambuf.h> and in GraphDebugger.cc I had to
> change #include <limits> to #include <limits.h>
> 
> Was this the correct thing to do, or is there a different convention for
> header files in C++ compared to C?

it's not a different convention for header files, it's a different set
of header files. <streambuf.h> is an obsolete header, <streambuf> is
what the C++ standard mandates (you have to upgrade your gcc to 3.2 or
greater).

> 
> Subsequent compilation fails with the following error:
> 
> compiling GraphDebugger.o
> ../../../Fresco/Berlin/src/GraphDebugger.cc: In method `struct
> Berlin::GraphDebugger::graphic_info &
> Berlin::GraphDebugger::find_or_insert(Fresco::_objref_Graphic *)':
> ../../../Fresco/Berlin/src/GraphDebugger.cc:171: `::numeric_limits'
> undeclared (first use here)
> ../../../Fresco/Berlin/src/GraphDebugger.cc:171: parse error before `int'
> make[2]: *** [GraphDebugger.o] Error 1

that's because you replaced <limit> by <limit.h>. The latter is a C
header, which is available as <climit> (and the symbols are then part
of the 'std' namespace. <limit> is really a different beast, which is, as
it seems, needed for the 'numeric_limits' template.

Hope this helps,
		Stefan