This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: using gcc 3.0.1 and 2.95.2.1
- To: gardiol at libero dot it
- Subject: Re: using gcc 3.0.1 and 2.95.2.1
- From: "Michael Veksler" <VEKSLER at il dot ibm dot com>
- Date: Tue, 11 Sep 2001 11:05:56 +0300
- Cc: gcc-help at gcc dot gnu dot org
> 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