Archived

This forum has been archived. Please start a new discussion on GitHub.

Ice2.0 compile error on linux!

I have just updated my gcc compiler from 2.9.6 to 3.4.3 and then compiled Ice 2.0 under the new compiler. But it failed:
=====================================================
...
rm -f ../../bin/slice2cpp
c++ -g -ftemplate-depth-128 -fPIC -Wall -D_REENTRANT -L../../lib -o ../../bin/slice2cpp Gen.o Main.o -lSlice -lIceUtil -lpthread
Gen.o: In function `IceUtil::HandleBase<Slice::Unit>::operator->() const':
/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../include/c++/3.4.3/bits/locale_facets.tcc:2448: undefined reference to `IceUtil::NullHandleException::NullHandleException(char const*, int)'
/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../include/c++/3.4.3/bits/locale_facets.tcc:2455: undefined reference to `typeinfo for IceUtil::NullHandleException'
Gen.o: In function `IceUtil::NullHandleException::~NullHandleException()':
...
../../lib/libIceUtil.so: undefined reference to `cerr'
../../lib/libIceUtil.so: undefined reference to `__cp_push_exception'
../../lib/libIceUtil.so: undefined reference to `endl(ostream &)'
../../lib/libIceUtil.so: undefined reference to `ostream::operator<<(char)'
../../lib/libIceUtil.so: undefined reference to `IceUtil::Exception::Exception(char const*, int)'
../../lib/libIceUtil.so: undefined reference to `string_char_traits<char>::copy(char *, char const *, unsigned int)'
../../lib/libIceUtil.so: undefined reference to `vtable for IceUtil::Exception'
../../lib/libIceUtil.so: undefined reference to `__out_of_range(char const *)'
../../lib/libIceUtil.so: undefined reference to `__rtti_user'
../../lib/libIceUtil.so: undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
../../lib/libIceUtil.so: undefined reference to `IceUtil::Exception::~Exception()'
../../lib/libIceUtil.so: undefined reference to `IceUtil::Exception::Exception(char const*, int)'
../../lib/libIceUtil.so: undefined reference to `__rtti_si'
../../lib/libIceUtil.so: undefined reference to `IceUtil::Exception::ice_print(std::basic_ostream<char, std::char_traits<char> >&) const'
../../lib/libIceUtil.so: undefined reference to `__rethrow'
../../lib/libIceUtil.so: undefined reference to `__throw'
../../lib/libIceUtil.so: undefined reference to `ostream::operator<<(char const *)'
../../lib/libIceUtil.so: undefined reference to `terminate(void)'
../../lib/libIceUtil.so: undefined reference to `IceUtil::operator<<(std::basic_ostream<char, std::char_traits<char> >&, IceUtil::Exception const&)'
../../lib/libIceUtil.so: undefined reference to `typeinfo for IceUtil::Exception'
../../lib/libIceUtil.so: undefined reference to `ostream::operator<<(int)'
../../lib/libIceUtil.so: undefined reference to `string_char_traits<char>::move(char *, char const *, unsigned int)'
../../lib/libIceUtil.so: undefined reference to `string_char_traits<char>::length(char const *)'
../../lib/libIceUtil.so: undefined reference to `__length_error(char const *)'
../../lib/libIceUtil.so: undefined reference to `ostream::write(char const *, int)'
../../lib/libIceUtil.so: undefined reference to `__builtin_delete'
../../lib/libIceUtil.so: undefined reference to `__builtin_new'
../../lib/libIceUtil.so: undefined reference to `__eh_alloc'
collect2: ld returned 1 exit status
gmake[2]: *** [../../bin/slice2cpp] Error 1
gmake[2]: Leaving directory `/home/raocheng/work/products/opensource/Ice-2.0.0/src/slice2cpp'
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory `/home/raocheng/work/products/opensource/Ice-2.0.0/src'
gmake: *** [all] Error 1
=====================================================

What's the problem? I have tested the new compiler and found it's ok!

Other information:
1)my OS is red hat 9.0!
2)I don't use STLport


Thank you!

Comments

  • Ice 2.0 does not support gcc 2.9.6 anymore. I recommend to update your gcc version. See this page for a list of supported platforms.

    If you want to try gcc 2.9.6 even though it is not supported, then at the very least you require STLport. The STL library that is included in gcc 2.9.6 will not work. However, if you run into any problems, we will not be able to help you, so I think upgrading your gcc version is the better option.