This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: using gcc 3.0.1 and 2.95.2.1




> 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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]