Archived

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

Problems building from source on Redhat 6.2

I installed all third party libraries from source and updated the paths in Make.rules. I added berkeley db lib path to LD_LIBRARY_PATH but I am still getting the following errors. Any help on what I am doing wrong will be appreciated.
make[3]: Entering directory `/home/snarasim/ice/Ice-3.4.2/cpp/src/IceStorm/FreezeDB'
rm -f ../../../bin/icestormmigrate
c++ -Wl,--enable-new-dtags -Wl,-rpath,/opt/Ice-3.4/lib64 -rdynamic -m64 -Wall -D_REENTRANT -fPIC -g  -L../../../lib  -o ../../../bin/icestormmigrate Migrate.o SubscriberMap.o LLUMap.o LinkRecord.o V32FormatDB.o V31FormatDB.o V32Format.o V31Format.o -Wl,-rpath-link,/home/snarasim/support/db/lib64  -lIceStormService -lIceStorm -lFreeze  -lIce -lIceUtil -lpthread -lrt
../../../lib/libFreeze.so: undefined reference to `Db::get_partition_callback(unsigned int*, unsigned int (**)(Db*, Dbt*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_bt_prefix(unsigned long (**)(Db*, Dbt const*, Dbt const*))'
../../../lib/libFreeze.so: undefined reference to `Db::set_create_dir(char const*)'
../../../lib/libFreeze.so: undefined reference to `Db::associate_foreign(Db*, int (*)(Db*, Dbt const*, Dbt*, Dbt const*, int*), unsigned int)'
../../../lib/libFreeze.so: undefined reference to `Db::set_partition_dirs(char const**)'
../../../lib/libFreeze.so: undefined reference to `Db::get_feedback(void (**)(Db*, int, int))'
../../../lib/libFreeze.so: undefined reference to `Db::sort_multiple(Dbt*, Dbt*, unsigned int)'
../../../lib/libFreeze.so: undefined reference to `Db::get_dup_compare(int (**)(Db*, Dbt const*, Dbt const*))'
../../../lib/libFreeze.so: undefined reference to `Db::set_partition(unsigned int, Dbt*, unsigned int (*)(Db*, Dbt*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_msgcall(void (**)(DbEnv const*, char const*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_partition_dirs(char const***)'
../../../lib/libFreeze.so: undefined reference to `Db::get_bt_compare(int (**)(Db*, Dbt const*, Dbt const*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_append_recno(int (**)(Db*, Dbt*, unsigned int))'
../../../lib/libFreeze.so: undefined reference to `Db::get_h_hash(unsigned int (**)(Db*, void const*, unsigned int))'
../../../lib/libFreeze.so: undefined reference to `Db::get_errcall(void (**)(DbEnv const*, char const*, char const*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_alloc(void* (**)(unsigned long), void* (**)(void*, unsigned long), void (**)(void*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_h_compare(int (**)(Db*, Dbt const*, Dbt const*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_partition_keys(unsigned int*, Dbt**)'
../../../lib/libFreeze.so: undefined reference to `Db::get_bt_compress(int (**)(Db*, Dbt const*, Dbt const*, Dbt const*, Dbt const*, Dbt*), int (**)(Db*, Dbt const*, Dbt const*, Dbt*, Dbt*, Dbt*))'
../../../lib/libFreeze.so: undefined reference to `Db::set_bt_compress(int (*)(Db*, Dbt const*, Dbt const*, Dbt const*, Dbt const*, Dbt*), int (*)(Db*, Dbt const*, Dbt const*, Dbt*, Dbt*, Dbt*))'
../../../lib/libFreeze.so: undefined reference to `Db::get_create_dir(char const**)'
collect2: ld returned 1 exit status
make[3]: *** [../../../bin/icestormmigrate] Error 1
make[3]: Leaving directory `/home/snarasim/ice/Ice-3.4.2/cpp/src/IceStorm/FreezeDB'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/snarasim/ice/Ice-3.4.2/cpp/src/IceStorm'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/snarasim/ice/Ice-3.4.2/cpp/src'
make: *** [all] Error 1

Comments

  • benoit
    benoit Rennes, France
    Hi,

    Does /home/snarasim/support/db/lib64 contain the C++ BerkeleyDB 4.8.30 libdb_cxx.so library?

    Cheers,
    Benoit.
  • These are the contents of lib64 directory.
    libdb-4.8.a   libdb-4.8.so  libdb.a          libdb_cxx-4.8.la  libdb_cxx-4.so  libdb_cxx.so
    libdb-4.8.la  libdb-4.so    libdb_cxx-4.8.a  libdb_cxx-4.8.so  libdb_cxx.a     libdb.so
    
    benoit wrote: »
    Hi,

    Does /home/snarasim/support/db/lib64 contain the C++ BerkeleyDB 4.8.30 libdb_cxx.so library?

    Cheers,
    Benoit.
  • benoit
    benoit Rennes, France
    Hi,

    Which GCC/linker version do you use? In theory, the linker should add the BerkeleyDB library because of the -rpath-link option. Since this doesn't appear to work, you could try adding the BerkeleyDB library directly to the linker command line options. You can do this by editing cpp/src/IceStorm/FreezeDB/Makefile and add $(DB_LIBS) at the end of line 69 (after $(LIBS)).

    Cheers,
    Benoit.