Archived

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

ice compile failed with gcc-3.4.1

make[2]: Entering directory `/usr/local/Ice-1.4.0/src/Freeze'
c++ -c -I.. -I../../include -DFREEZE_API_EXPORTS -g -ftemplate-depth-128 -fPIC -Wall -D_REENTRANT TransactionI.cpp
TransactionI.cpp: In member function `virtual void Freeze::TransactionI::commit()':
TransactionI.cpp:24: error: expected unqualified-id before '&' token
TransactionI.cpp:24: error: ISO C++ forbids declaration of `type name' with no type
TransactionI.cpp:24: error: expected `)' before '&' token
TransactionI.cpp:24: error: expected `{' before '&' token
TransactionI.cpp:24: error: `dx' undeclared (first use this function)
TransactionI.cpp:24: error: (Each undeclared identifier is reported only once for each function it appears in.)
TransactionI.cpp:24: error: expected `;' before ')' token
TransactionI.cpp:31: error: expected primary-expression before "catch"
TransactionI.cpp:31: error: expected `;' before "catch"
TransactionI.cpp: In member function `virtual void Freeze::TransactionI::rollback()':
TransactionI.cpp:51: error: expected unqualified-id before '&' token
TransactionI.cpp:51: error: ISO C++ forbids declaration of `type name' with no type
TransactionI.cpp:51: error: expected `)' before '&' token
TransactionI.cpp:51: error: expected `{' before '&' token
TransactionI.cpp:51: error: `dx' undeclared (first use this function)
TransactionI.cpp:51: error: expected `;' before ')' token
TransactionI.cpp:58: error: expected primary-expression before "catch"
TransactionI.cpp:58: error: expected `;' before "catch"
make[2]: *** [TransactionI.o] ´íÎó 1
make[2]: Leaving directory `/usr/local/Ice-1.4.0/src/Freeze'
make[1]: *** [all] ´íÎó 1
make[1]: Leaving directory `/usr/local/Ice-1.4.0/src'
make: *** [all] ´íÎó 1
[root@mars2 Ice-1.4.0]# gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.1/specs
Configured with: ../gcc-3.4.1/configure --prefix=/usr --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++ --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.1
[root@mars2 Ice-1.4.0]# uname -a
Linux mars2 2.6.7-bk19 #24 Wed Jul 7 10:14:37 UTC 2004 i686 i686 i386 GNU/Linux
[root@mars2 Ice-1.4.0]#

Comments

  • mes
    mes California
    Did you set DB_HOME to point to an installation of BerkeleyDB 4.2.52?

    Take care,
    - Mark
  • link error?

    i installed db-4.2.52.NC from tarball, but when i recompile ice, it comes out

    c++ -g -ftemplate-depth-128 -fPIC -Wall -D_REENTRANT -L../../lib -o ../../bin/transformdb TransformAnalyzer.o TransformVisitor.o Transformer.o TransformDB.o Grammar.o Scanner.o AssignVisitor.o Data.o Error.o Functions.o Exception.o Parser.o Print.o Util.o -lSlice -lIceXML -lIce -lIceUtil -lpthread -L/usr/local/BerkeleyDB.4.2/lib -ldb_cxx -lexpat
    TransformDB.o(.text+0x493b): In function `run':
    /usr/local/Ice-1.4.0/src/FreezeScript/TransformDB.cpp:604: undefined reference to `Db::open(DbTxn*, char const*, char const*, DBTYPE, unsigned int, int)'
    TransformDB.o(.text+0x4d82):/usr/local/Ice-1.4.0/src/FreezeScript/TransformDB.cpp:628: undefined reference to `Db::open(DbTxn*, char const*, char const*, DBTYPE, unsigned int, int)'
    collect2: ld returned 1 exit status
    make[2]: *** [../../bin/transformdb] ´íÎó 1
    make[2]: Leaving directory `/usr/local/Ice-1.4.0/src/FreezeScript'
    make[1]: *** [all] ´íÎó 1
    make[1]: Leaving directory `/usr/local/Ice-1.4.0/src'
    make: *** [all] ´íÎó 1
  • Did you build Berkeley DB with the --enable_cxx option to configure? Did you set and export DB_HOME? Maybe you also have an older version of Berkeley DB installed in /usr? This looks like an installation problem with Berkeley DB to me.

    Cheers,

    Michi.
  • ThanksI
    After recompile berkeleyDB with --enable_cxx , it's ok!