[boost-users][unit-test-framework] Problem linking tests.

Hello all. I'm having a hard time trying to link a binary against libbost_unit_test_framework. I was developing some software in my laptop. This laptop has installed boost libraries from the repositories (it's boost-1.40 ubuntu 10.04). I had to pass this code to another computer, which hadn't boost installed, so I copied what I had in ubuntu from the repositories into my project, headers included. My project uses boost_system and boost_thread as well. Both machines are 64 bit machines with intel. But when compiling, I get this: td::char_traits<char> >::_M_extract<unsigned long>(unsigned long&)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<bool>(bool)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<long>(long&)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<void const*>(void const*)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::ctype<char>::_M_widen_init() const@GLIBCXX_3.4.11' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<unsigned int>(unsigned int&)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<bool>(bool&)@GLIBCXX_3.4.9' /home/gdiago/clientserver/deps/boost-1.40/lib/libboost_unit_test_framework.so: undefined reference to `__longjmp_chk@GLIBC_2.11' I also tried to compile my code with version 3.4 of g++, which is installed in the machine with no luck, same errors. Can anyone tell me if this is solvable without recompiling boost in the target machine? I'm not the mantainer of that machine, so I can't install boost. Thanks in advance.

Germán Diago <germandiago <at> gmail.com> writes:
Hello all. I'm having a hard time trying to link a binary against libbost_unit_test_framework.
I was developing some software in my laptop. This laptop has installed boost libraries from the repositories (it's boost-1.40 ubuntu 10.04).
I had to pass this code to another computer, which hadn't boost installed, so I copied what I had in ubuntu from the repositories into my project, headers included. My project uses boost_system and boost_thread as well. Both machines are 64 bit machines with intel. But when compiling, I get this:
td::char_traits<char> >::_M_extract<unsigned long>(unsigned long&)@GLIBCXX_3.4.9'
Looks like you've got different glibc versions. I suggect you try single header version of boost test and avoid linking altogether. Gennadiy

thanks. I didn't know of the only-header version. 2010/7/1 Gennadiy Rozental <rogeeff@gmail.com>:
Germán Diago <germandiago <at> gmail.com> writes:
Hello all. I'm having a hard time trying to link a binary against libbost_unit_test_framework.
I was developing some software in my laptop. This laptop has installed boost libraries from the repositories (it's boost-1.40 ubuntu 10.04).
I had to pass this code to another computer, which hadn't boost installed, so I copied what I had in ubuntu from the repositories into my project, headers included. My project uses boost_system and boost_thread as well. Both machines are 64 bit machines with intel. But when compiling, I get this:
td::char_traits<char> >::_M_extract<unsigned long>(unsigned long&)@GLIBCXX_3.4.9'
Looks like you've got different glibc versions. I suggect you try single header version of boost test and avoid linking altogether.
Gennadiy
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Gennadiy Rozental
-
Germán Diago