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

Linker error while building IceBox


I get the following error while compiling Ice 1.0.1

c++ -L../../lib -o ../../bin/icebox ServiceManagerI.o Server.o -lIceBox -lFreeze -lIceXML -lIce -ldl -lbz2 -lIceUtil -lpthread -luuid -ldb
../../lib/ undefined reference to `txn_abort'
../../lib/ undefined reference to `txn_begin'
../../lib/ undefined reference to `txn_commit'
collect2: ld returned 1 exit status

As far as I can tell txn_* are in the berkeley libraries. I've checked and I do have libdb4.0 and libdb4.1 in /usr/lib

I'm running Debian unstable. Have any Debian users experienced similar problems?



  • Well...

    It appears that I cannot build successfully using the Debian versions of the libdb* libraries. My workaround was to install Berkeley DB from (as suggested in the INSTALL notes) in /opt. I then changed my DB_PREFIX to point to the appropriate location, did a "make clean" and then a "make".

    If anyone suspects why I wasn't able to build Ice using the Debian libdb libraries I'd be very happy to know.

  • mes
    mes California

    My first thought was that perhaps there was a discrepancy between the header files you were compiling against and the library you were linking against. I also wondered if transaction support might be an optional feature when building BerkeleyDB, but that doesn't appear to be the case.

    In any event, I'm glad to hear you've resolved the issue.

    Take care,
    - Mark