Я пытаюсь построить ROS для OSX и у меня проблема с неопределенным символом для повышения. Boost является последней версией. Как мне это исправить, чтобы я мог закончить компиляцию ?! Примечание: я не хочу редактировать любой исходный код (создавать файлы и т.д.), Если это возможно.

Undefined symbols for architecture x86_64: "boost::re_detail::get_mem_block()", referenced from:` boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find_imp() in rosconsole.cpp.o ... В конце концов: ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [/users/andor/workspace/ros/devel_isolated/rosconsole/lib/librosconsole.dylib] Error 1 make[1]: *** [CMakeFiles/rosconsole.dir/all] Error 2 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Системная информация:

  • Macbook 2015
  • OSX High Sierra
  • Версия Clang - Apple LLVM версия 9.1.0 (clang-902.0.39.1)
  • Цель: x86_64-apple-darwin17.5.0
  • Повышение: 1.67.0_1
  • G++ Настраивается с помощью: --prefix =/Library/Developer/CommandLineTools/usr --with-gxx-include-dir =/usr/include/c++/4.2.1

Заранее спасибо!

Полный след стека ниже:

[ 33%] Built target rosconsole_backend_interface
[ 66%] Built target rosconsole_log4cxx
[ 83%] Linking CXX shared library 
 ace/ros/devel_isolated/rosconsole/lib/librosconsole.dylib
 Undefined symbols for architecture x86_64:
 "boost::re_detail::get_mem_block()", referenced from:
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, 
 std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find_imp() in rosconsole.cpp.o
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_all_states() in rosconsole.cpp.o
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_startmark() in rosconsole.cpp.o
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_endmark() in rosconsole.cpp.o
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_match() in rosconsole.cpp.o
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_alt() in rosconsole.cpp.o
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_rep() in rosconsole.cpp.o
  ...
 "boost::re_detail::put_mem_block(void*)", referenced from:
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find_imp() in rosconsole.cpp.o
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::unwind_extra_block(bool) in rosconsole.cpp.o
  "boost::re_detail::verify_options(unsigned int, boost::regex_constants::_match_flags)", referenced from:
  boost::re_detail::perl_matcher<std::__1::__wrap_iter<char const*>, std::__1::allocator<boost::sub_match<std::__1::__wrap_iter<char const*> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find_imp() in rosconsole.cpp.o
   "boost::re_detail::raise_runtime_error(std::runtime_error const&)", referenced from:
  void boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > > >(boost::regex_traits_wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::error_type) in rosconsole.cpp.o
 "boost::re_detail::get_default_error_string
  (boost::regex_constants::error_type)", referenced from:

  boost::re_detail::cpp_regex_traits_implementation<char>
  ::error_string(boost::regex_constants::error_type) const in 
  rosconsole.cpp.o
  "boost::re_detail::
  cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const", referenced from:
  std::__1::__wrap_iter<char const*> 
  boost::re_detail::re_is_set_member<std::__1::__wrap_iter<char const*>, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, boost::re_detail::re_set_long<unsigned int> const*, boost::re_detail::regex_data<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, bool) in rosconsole.cpp.o
 "boost::
 re_detail::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const", referenced from:
  std::__1::__wrap_iter<char const*> boost::re_detail::re_is_set_member<std::__1::__wrap_iter<char const*>, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, boost::re_detail::re_set_long<unsigned int> const*, boost::re_detail::regex_data<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, bool) in rosconsole.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** 
[dir/librosconsole.dylib] Error 1
make[1]: *** [CMakeFiles/rosconsole.dir/all] Error 2
make: *** [all] Error 2
 ______________________________

0