ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Ogre fails to build on Mac OS 10.8.3 during rosdep install

asked 2013-05-26 14:03:42 -0500

Ampers4nd gravatar image

I am trying to install ROS using the homebrew based directions found on the main site (I can't publish links).

I am doing the (recommended) Desktop install, and I am running to problems at the resolving dependencies step. Specifically, the 'brew install ogre' is failing. I filed a ticket with Homebrew, but it seems that they don't support the ogre brew formula.

I want to post the output of the rosdep command as well as a link to the gist that I created for a brew ticket, but I am completely hamstrung by my the wiki's refusal to post links. So I'll just post the tail of the output and hope that I can somehow pass the relevant information as a response to someone's comments. I appreciate your help, and please let me know what else you'd like to see. Thanks!

rosdep install --from-paths src --ignore-src --rosdistro groovy -y

i've removed a bunch of stuff b/c the wiki thinks I'm posting links...

==> cmake -DCMAKE_OSX_ARCHITECTURES='x86_64' -DOGRE_BUILD_PLUGIN_CG=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/ogre/1.7.4 -DCMAKE_B ==> make install 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]: * [lib/libOgreMain.1.7.4.dylib] Error 1 make[1]: [OgreMain/CMakeFiles/OgreMain.dir/all] Error 2 make: ** [all] Error 2

READ THIS: /brew troubleshooting link/

ERROR: the following rosdeps failed to install homebrew: command [brew install ogre] failed

edit retag flag offensive close merge delete


This is the gist for the brew ticket, which contains the verbose output of the brew install command:

Ampers4nd gravatar image Ampers4nd  ( 2013-05-26 14:04:52 -0500 )edit

It seems I can add the links here:-) This is a link to the rosdep install output, also posted as a gist:

Ampers4nd gravatar image Ampers4nd  ( 2013-05-26 14:07:52 -0500 )edit

I have the exact same problem. Uninstalling boost and "brew install boost --universal" didnt resolve the problem.

Crusty gravatar image Crusty  ( 2013-05-29 01:42:36 -0500 )edit

I have updated my answer, and it solved my problem. Try it!

Crusty gravatar image Crusty  ( 2013-06-05 22:32:01 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-05-29 01:53:55 -0500

Crusty gravatar image

updated 2013-06-05 23:02:00 -0500


I have finally managed to build it!!! It seems the Ogre homebrew installs is pretty old (1.7) and depends on an old boost (1.49). The current boost on homebrew is 1.53 as of this date.

The key was not using "boost149" keg-only, because it wasn't detected as satisfying the dependency properly. The following steps actually solved my problem:

$ cd /usr/local/Cellar
$ brew versions boost

Outputs many boost versions, among this one:

1.49.0 git checkout e40bc41 /usr/local/Library/Formula/boost.rb

$ git checkout e40bc41 /usr/local/Library/Formula/boost.rb
$ brew install boost
$ brew install ogre

Further info: And as a little side note as you seem to go through the same issues as me:

pydot and pyparsing are the next things that are gonna fail on your ros homebrew build now that ogre works. Fastest was to get it done is to download the packages from their respective homepages directly and then

sudo python install

For pyparsing you need to grab version 1.5.7 because that's the last version supporting python 2.7

------------ snip snip: for reference the original problem: -------------

I have the same problem, additional information:

Cant post links (man this is annoying), info is in ogre3d forums, forum ID in the URL is 2, thread ID is 72223

Seems to be an incompatibility with a newer boost version.

Verbose information from linker:

 Linking CXX shared library ../lib/libOgreMain.dylib
brew: superenv removed: -arch x86_64 -isysroot /Applications/
Undefined symbols for architecture x86_64:
  "boost::this_thread::interruption_point()", referenced from:
      boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) in OgreWorkQueue.cpp.o
      void boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> >(boost::unique_lock<boost::recursive_mutex>&) in OgreDefaultWorkQueueStandard.cpp.o
  "boost::this_thread::disable_interruption::disable_interruption()", referenced from:
      boost::shared_mutex::lock() in OgreWorkQueue.cpp.o
      boost::shared_mutex::lock_shared() in OgreWorkQueue.cpp.o
  "boost::this_thread::disable_interruption::~disable_interruption()", referenced from:
      boost::shared_mutex::lock() in OgreWorkQueue.cpp.o
      boost::shared_mutex::lock_shared() in OgreWorkQueue.cpp.o
  "boost::detail::get_tss_data(void const*)", referenced from:
      boost::thread_specific_ptr<Ogre::MaterialSerializer>::reset(Ogre::MaterialSerializer*) in OgreMaterialManager.cpp.o
      Ogre::ScriptCompilerManager::parseScript(Ogre::SharedPtr<Ogre::DataStream>&, std::string const&) in OgreScriptCompiler.cpp.o
      boost::thread_specific_ptr<Ogre::ScriptCompiler>::reset(Ogre::ScriptCompiler*) in OgreScriptCompiler.cpp.o
  "boost::detail::set_tss_data(void const*, boost::shared_ptr<boost::detail::tss_cleanup_function>, void*, bool)", referenced from:
      boost::thread_specific_ptr<Ogre::MaterialSerializer>::reset(Ogre::MaterialSerializer*) in OgreMaterialManager.cpp.o
      boost::thread_specific_ptr<Ogre::MaterialSerializer>::~thread_specific_ptr() in OgreMaterialManager.cpp.o
      boost::thread_specific_ptr<Ogre::ScriptCompiler>::reset(Ogre::ScriptCompiler*) in OgreScriptCompiler.cpp.o
      boost::thread_specific_ptr<Ogre::ScriptCompiler>::~thread_specific_ptr() in OgreScriptCompiler.cpp.o
  "boost::detail::thread_data_base::~thread_data_base()", referenced from:
      boost::detail::thread_data<Ogre::DefaultWorkQueueBase::WorkerFunc>::~thread_data() in OgreDefaultWorkQueueStandard.cpp.o
      boost::detail::thread_data<Ogre::DefaultWorkQueueBase::WorkerFunc>::~thread_data() in OgreDefaultWorkQueueStandard.cpp.o
  "boost::detail::get_current_thread_data()", referenced from:
      boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*) in OgreWorkQueue.cpp.o
      boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*) in OgreDefaultWorkQueueStandard.cpp.o
  "boost::system::system_category()", referenced from:
      __GLOBAL__I_a in OgreAlignedAllocator.cpp.o ...
edit flag offensive delete link more

Question Tools


Asked: 2013-05-26 14:03:42 -0500

Seen: 536 times

Last updated: Jun 05 '13