Не могу скомпилировать tokumx / mongodb на osx mavericks

0

Я пытаюсь скомпилировать tokumx (вилка mongodb с транзакциями) на mavericks. Он компилируется в течение некоторого времени, а затем ошибки с этим сообщением:

Linking build/darwin/64/release/mongo/mongodump
Undefined symbols for architecture x86_64:
  "std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator()(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const", referenced from:
      std::tr1::_Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::__detail::_Mod_range_hashing, std::tr1::__detail::_Default_ranged_hash, std::tr1::__detail::_Prime_rehash_policy, false, false, true>::find(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const in configuration_variable_manager.o
      std::tr1::_Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::__detail::_Mod_range_hashing, std::tr1::__detail::_Default_ranged_hash, std::tr1::__detail::_Prime_rehash_policy, false, false, true>::_M_rehash(unsigned long) in configuration_variable_manager.o
      std::tr1::__detail::_Map_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> > >, true, std::tr1::_Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::function<mongo::Status (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::__detail::_Mod_range_hashing, std::tr1::__detail::_Default_ranged_hash, std::tr1::__detail::_Prime_rehash_policy, false, false, true> >::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in configuration_variable_manager.o
      mongo::InitializerDependencyGraph::addInitializer(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::function<mongo::Status (mongo::InitializerContext*)> const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) in initializer_dependency_graph.o


"std::__detail::_List_node_base::_M_unhook()", referenced from:
      mongo::DistributedLockPinger::_distLockPingThread(mongo::ConnectionString, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long) in distlock.o
      std::list<mongo::FieldRangeSetPair, std::allocator<mongo::FieldRangeSetPair> >::_M_erase(std::_List_iterator<mongo::FieldRangeSetPair>) [clone .isra.535] in queryutil.o
      mongo::OrRangeGenerator::_popOrClause(mongo::FieldRangeSet const*, mongo::Collection*, int, mongo::BSONObj const&) in queryutil.o
      mongo::OrRangeGenerator::popOrClauseSingleKey()      in queryutil.o
      mongo::threadpool::ThreadPool::task_done(mongo::threadpool::Worker*) in thread_pool.o
      mongo::threadpool::ThreadPool::~ThreadPool() in thread_pool.o
      mongo::threadpool::ThreadPool::~ThreadPool() in thread_pool.o
      ...
ld: symbol(s) not found for architecture x86_64

Кто-нибудь точно знает, что там происходит?

Теги:
linker-errors
compilation
osx-mavericks
tokumx

1 ответ

2
Лучший ответ

Это вызвано несоответствием между стандартными заголовками библиотек и версией библиотеки, что похоже на этот отчет http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43882.

Компиляция OSX не поддерживается строго для TokuMX, но я недавно работал над ней. Убедитесь, что у вас установлены последние инструменты Xcode и командной строки, и попробуйте снова --cc=cc --cxx="c++ -std=c++11 -stdlib=libc++" компиляцию с помощью --cc=cc --cxx="c++ -std=c++11 -stdlib=libc++" as аргументы для брака.

Если это не сработает, пожалуйста, также укажите команду, которую вы пытались построить, и весь предыдущий вывод, это будет вопрос, который лучше подходит для списка рассылки, который я думаю.

  • 0
    я использую компилятор llvm от Apple 5.0. Я получаю следующую ошибку: src/mongo/scripting/v8_profiler.cpp:23:26: error: no member named 'StartProfiling' in 'v8::CpuProfiler'; did you mean 'StartCpuProfiling'? v8::CpuProfiler::StartProfiling(v8::String::New(name.toString().c_str())); когда я компилирую, используя /opt/local/bin/scons -j8 --cc=cc --cxx="c++ -std=c++11 -stdlib=libc++" --release dist . Я также использовал компилятор mp-gcc47 macports. Получил ссылку, но потом я пожаловался, что -rdynamic не был допустимым вариантом, и как только я удалил rdynamic, он начал жаловаться на tr1 включает ...
  • 0
    Я никогда не видел эту ошибку о StartProfiling. Компилятор clang определенно единственный, который мы бы поддерживали на macs. В настоящий момент мы не поддерживаем сборки Mac, но работаем над этим медленно. Если вы отправите нам письмо по электронной почте, я смогу подключить вас к нашей системе и уведомить вас, когда у нас будет с чем поиграть.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню