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
0
Comments
-
Hi,
Does /home/snarasim/support/db/lib64 contain the C++ BerkeleyDB 4.8.30 libdb_cxx.so library?
Cheers,
Benoit.0 -
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
Hi,
Does /home/snarasim/support/db/lib64 contain the C++ BerkeleyDB 4.8.30 libdb_cxx.so library?
Cheers,
Benoit.0 -
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.0