using gcc 3.0.1 and 2.95.2.1

Michael Veksler VEKSLER@il.ibm.com
Tue Sep 11 01:04:00 GMT 2001


> I am trying to compile kdevelop 2.0 but i get an error
> compiling flex related stuff (flex 2.5.4a)

Flex (the one that I have) creates non standard c++ code.
The ungly hack that I have runs sed on the result of flex,
and replaces 'class istream;' with '#include <iosfwd.h>".
"iosfwd.h" is a file I wrote that includes iosfwd, and has
several "using std::one-of-iostream-classes;" lines.

> So i decided to install a second gcc: 2.905.2.1

You mean gcc-2.95.2, right ?
> (/usr/local/gcc-2.95.2) and use it to compile KDevelop.

> It works, BUT if i try to compile with that gcc i get
> tons (really tons) of udefined symbol!


> Now i suspect gcc from 2.x to 3.x uses a different naming
> for c++ symbols but how can i overcome this problem?

Maybe recompile every single C++ library you have with the same C++
compiler?

The ABI of gcc C++ has changed every release (except for patch level
releases). This means that C++ code you compiled (or somebody else
compiled for you), cannot be mixed with C++ code compiled with different
gcc versions.

It *may* be possible to mix two different C++ versions in a single program
by using C or CORBA proxies, but I guess you are not that desperate.


  Michael




More information about the Gcc-help mailing list