Boost logo

Boost Users :

Subject: [Boost-users] 'Undefined symbols' error when building Mira Groupware on Mac OS X
From: Max Bossino (max_at_[hidden])
Date: 2010-05-23 13:45:09


Hi all,

I'm having some trouble compiling an app (Mira Groupware of http://miragroupware.org), which uses the Boost 1.42 libraries, on Mac OS X. It's exiting during the 'make' stage with an error about 'Undefined symbols'. I would really appreciate it if someone could offer a helping hand!

Judging by the output of CMake, the Boost files are installed and can be found (I've cropped the output to highlight the bit about Boost):

-----
MBP:build Max$ cmake ./
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
[...]
-- Boost version: 1.42.0
-- Found the following Boost libraries:
-- thread
-- signals
-- system
-- filesystem
** Mira found Boost version 104200
[...]
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/Max/Documents/Projects/Mira/Branches/build
-----

However, this is what happens while trying to 'make' the Server:

-----
MBP:mirs Max$ make
[ 6%] Built target mira
Scanning dependencies of target Files-utility
[ 13%] Building CXX object CMakeFiles/Files-utility.dir/src/utilities/files/files.cpp.o
[ 20%] Building CXX object CMakeFiles/Files-utility.dir/src/utilities/files/FileUtility.cpp.o
[ 26%] Building CXX object CMakeFiles/Files-utility.dir/src/utilities/files/FileServer.cpp.o
[ 33%] Building CXX object CMakeFiles/Files-utility.dir/src/utilities/files/FileConnection.cpp.o
Linking CXX shared library bin/libFiles-utility.dylib
Undefined symbols:
  "boost::filesystem::detail::remove_api(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)", referenced from:
      bool
boost::filesystem::detail::remove_aux<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, boost::filesystem::path_traits> const&,
boost::filesystem::file_status)in FileUtility.cpp.o
  "boost::system::get_system_category()", referenced from:
      boost::asio::error::get_system_category() in files.cpp.o
      boost::system::error_code::error_code()in files.cpp.o
      __static_initialization_and_destruction_0(int, int)in files.cpp.o
      __static_initialization_and_destruction_0(int, int)in files.cpp.o
      boost::system::error_code::error_code()in FileUtility.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileUtility.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileUtility.cpp.o
      boost::asio::error::get_system_category() in FileServer.cpp.o
      boost::system::error_code::error_code()in FileServer.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileServer.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileServer.cpp.o
      boost::asio::error::get_system_category() in FileConnection.cpp.o
      boost::system::error_code::error_code()in FileConnection.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileConnection.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileConnection.cpp.o
  "typeinfo for boost::detail::thread_data_base", referenced from:
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void,
FileServer>, boost::_bi::list1<boost::_bi::value<FileServer*> > > >in files.cpp.o
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void,
FileConnection>, boost::_bi::list1<boost::_bi::value<FileConnection*> > > >in FileServer.cpp.o
  "boost::thread::start_thread()", referenced from:
      boost::thread::thread<boost::_bi::bind_t<void, boost::_mfi::mf0<void, FileServer>,
boost::_bi::list1<boost::_bi::value<FileServer*> > > >(boost::_bi::bind_t<void,
boost::_mfi::mf0<void, FileServer>, boost::_bi::list1<boost::_bi::value<FileServer*> > >,
boost::disable_if<boost::is_convertible<boost::_bi::bind_t<void, boost::_mfi::mf0<void,
FileServer>, boost::_bi::list1<boost::_bi::value<FileServer*> > >&,
boost::detail::thread_move_t<boost::_bi::bind_t<void, boost::_mfi::mf0<void, FileServer>,
boost::_bi::list1<boost::_bi::value<FileServer*> > > > >, boost::thread::dummy*>::type)in files.cpp.o
      boost::thread::thread<boost::_bi::bind_t<void, boost::_mfi::mf0<void, FileConnection>,
boost::_bi::list1<boost::_bi::value<FileConnection*> > > >(boost::_bi::bind_t<void,
boost::_mfi::mf0<void, FileConnection>,
boost::_bi::list1<boost::_bi::value<FileConnection*> > >,
boost::disable_if<boost::is_convertible<boost::_bi::bind_t<void, boost::_mfi::mf0<void,
FileConnection>, boost::_bi::list1<boost::_bi::value<FileConnection*> > >&,
boost::detail::thread_move_t<boost::_bi::bind_t<void, boost::_mfi::mf0<void,
FileConnection>, boost::_bi::list1<boost::_bi::value<FileConnection*> > > > >,
boost::thread::dummy*>::type)in FileServer.cpp.o
  "boost::filesystem::detail::not_found_error()", referenced from:

boost::filesystem::basic_directory_iterator<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>::m_init(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, boost::filesystem::path_traits> const&)in FileUtility.cpp.o
  "boost::filesystem::detail::symlink_status_api(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, boost::system::error_code&)",
referenced from:

boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >,
boost::filesystem::file_status>::type
boost::filesystem::symlink_status<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, boost::filesystem::path_traits> const&, boost::system::error_code&)in FileUtility.cpp.o
  "boost::detail::thread_data_base::~thread_data_base()", referenced from:
      boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, FileServer>,
boost::_bi::list1<boost::_bi::value<FileServer*> > > >::~thread_data()in files.cpp.o
      boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, FileServer>,
boost::_bi::list1<boost::_bi::value<FileServer*> > > >::~thread_data()in files.cpp.o
      boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, FileConnection>,
boost::_bi::list1<boost::_bi::value<FileConnection*> > > >::~thread_data()in FileServer.cpp.o
      boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, FileConnection>,
boost::_bi::list1<boost::_bi::value<FileConnection*> > > >::~thread_data()in FileServer.cpp.o
  "vtable for boost::detail::thread_data_base", referenced from:
      boost::detail::thread_data_base::thread_data_base()in files.cpp.o
      boost::detail::thread_data_base::thread_data_base()in FileServer.cpp.o
  "boost::thread::~thread()", referenced from:
      _initialize in files.cpp.o
      FileServer::run() in FileServer.cpp.o
  "boost::filesystem::detail::dir_itr_first(void*&, void*&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, boost::filesystem::file_status&,
boost::filesystem::file_status&)", referenced from:

boost::filesystem::basic_directory_iterator<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>::m_init(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, boost::filesystem::path_traits> const&)in FileUtility.cpp.o
  "boost::filesystem::detail::file_size_api(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)", referenced from:

boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, unsigned
long>::type
boost::filesystem::file_size<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, boost::filesystem::path_traits> const&)in FileConnection.cpp.o
  "boost::filesystem::detail::dir_itr_increment(void*&, void*&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, boost::filesystem::file_status&,
boost::filesystem::file_status&)", referenced from:

boost::filesystem::basic_directory_iterator<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>::increment()in FileUtility.cpp.o
  "boost::filesystem::detail::create_directory_api(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)", referenced from:

boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type
boost::filesystem::create_directory<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, boost::filesystem::path_traits> const&)in FileUtility.cpp.o
  "boost::system::get_generic_category()", referenced from:
      __static_initialization_and_destruction_0(int, int)in files.cpp.o
      __static_initialization_and_destruction_0(int, int)in files.cpp.o
      __static_initialization_and_destruction_0(int, int)in files.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileUtility.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileUtility.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileUtility.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileServer.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileServer.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileServer.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileConnection.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileConnection.cpp.o
      __static_initialization_and_destruction_0(int, int)in FileConnection.cpp.o
  "boost::filesystem::detail::status_api(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, boost::system::error_code&)", referenced from:

boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type
boost::filesystem::exists<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, boost::filesystem::path_traits> const&)in FileUtility.cpp.o
  "boost::filesystem::detail::dir_itr_close(void*&, void*&)", referenced from:

boost::filesystem::detail::dir_itr_imp<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits>
>::~dir_itr_imp()in FileUtility.cpp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [bin/libFiles-utility.dylib] Error 1
make[1]: *** [CMakeFiles/Files-utility.dir/all] Error 2
make: *** [all] Error 2
-----

The Client exits with a similar error during the build process. Would anyone know why this issue is occurring, and how I could fix it?

Thank you in advance.

Regards,

Max Bossino
Project Manager
http://miragroupware.org


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net