Ask Your Question
0

rosmake -a fails - boost symbols not found [Mountain Lion]

asked 2012-10-04 03:26:45 -0600

TiagoRibeiro gravatar image

updated 2012-10-04 05:23:59 -0600

I have tried to install electric in Snow Leopard, but it failed due to not findind some symbols on the boost libraries. By that time I searched around for solutions, I installed the boost I had and installed 1.49, but still it failed. I upgraded to Mountain Lion and again tried installing electric, but failed with the same problem. So i tried to install fuerte, and again.. it fails with the same error.

So my current situation is fuerte + Mountain Lion, and I don't know how to solve this problem. I really want to use ROS on my research project, but it's turning out impossible to get it running. Already spent a whole week installing stuff and missing lib and dependencies and even a new OS.

Can anybody help here?

This is the ~/.ros/rosmake/ros_outputxxx/bondcpp/build_output.log file:

mkdir -p bin

cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=rospack find rosbuild/rostoolchain.cmake

..

-- The C compiler identification is GNU 4.2.1

-- The CXX compiler identification is Clang 4.1.0

-- Checking whether C compiler has -isysroot

-- Checking whether C compiler has -isysroot - yes

-- Checking whether C compiler supports OSX deployment target flag

-- Checking whether C compiler supports OSX deployment target flag - yes

-- Check for working C compiler: /usr/bin/gcc

-- Check for working C compiler: /usr/bin/gcc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working CXX compiler: /usr/bin/c++

-- Check for working CXX compiler: /usr/bin/c++ -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Found PythonInterp: /usr/local/bin/python (found version "2.7.3")

[rosbuild] Building package bondcpp

[rosbuild] Cached build flags older than manifests; calling rospack to get flags

[rosbuild] Including /opt/ros/fuerte/share/roscpp/rosbuild/roscpp.cmake

[rosbuild] Including /opt/ros/fuerte/share/common-lisp/ros/roslisp/rosbuild/roslisp.cmake

[rosbuild] Including /opt/ros/fuerte/share/rospy/rosbuild/rospy.cmake

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/tiagoribeiro/ros/bond_core/bondcpp/build

cd build && make -l4

Scanning dependencies of target rospack_genmsg_libexe

[ 0%] Built target rospack_genmsg_libexe

Scanning dependencies of target rosbuild_precompile

[ 0%] Built target rosbuild_precompile

Scanning dependencies of target bondcpp

[ 33%] Building CXX object CMakeFiles/bondcpp.dir/src/timeout.o

[ 66%] Building CXX object CMakeFiles/bondcpp.dir/src/bond.o

In file included from /Users/tiagoribeiro/ros/bond_core/bondcpp/src/bond.cpp:32:

/Users/tiagoribeiro/ros/bond_core/bondcpp/include/bondcpp/bond.h:186:1: warning: 'BondSM' defined as a struct here but previously declared as a class [-Wmismatched-tags]

struct BondSM^ /Users/tiagoribeiro/ros/bond_core/bondcpp/include/BondSM_sm.h:25:1: note: did you mean struct here?

class BondSM; ^~~~~ struct

1 warning generated.

[100%] Building CXX object CMakeFiles/bondcpp.dir/src/BondSM_sm.o

In file included from /Users/tiagoribeiro/ros/bond_core/bondcpp/src/BondSM_sm.cpp:8: /Users/tiagoribeiro/ros/bond_core/bondcpp/include/bondcpp/bond.h:186:1: warning: 'BondSM' defined as a struct here but previously declared as a class [-Wmismatched-tags]

struct BondSM ^ /Users/tiagoribeiro/ros/bond_core ... (more)

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2012-10-04 05:20:07 -0600

I had a few linking issues with boost installing Fuerte on Mountain Lion. You can fix that one by modifying bond_core/bondcpp/CMakeLists.txt to include "rosbuild_link_boost(${PROJECT_NAME} thread system)" at the end of the file to link against boost thread:

22) target_link_libraries(${PROJECT_NAME})
23) rosbuild_link_boost(${PROJECT_NAME} thread system)
edit flag offensive delete link more
0

answered 2012-10-04 08:27:52 -0600

TiagoRibeiro gravatar image

thank you very much, your answer solved that problem! unfortunately I still had other problems while running rosmake.

I struggled to solve most of them, so I got everything built except one thing: [rosmake-2] Finished <<< image_transport [FAIL] [ 3.10 seconds ]
[ rosmake ] Halting due to failure in package image_transport. [ rosmake ] Waiting for other threads to complete.
[rosmake-1] Finished <<< tf [PASS] [ 5.40 seconds ]
[rosmake-0] Finished <<< nodelet [PASS] [ 3.44 seconds ]
[rosmake-3] Finished <<< dynamic_reconfigure [PASS] [ 5.24 seconds ]
[ rosmake ] Results:
[ rosmake ] Built 33 packages with 1 failures.
[ rosmake ] Summary output to directory

At leas I understand that only image_transport has failed. The image_transport log is:

mkdir -p bin

cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=rospack find rosbuild/rostoolchain.cmake

..

[rosbuild] Building package image_transport

[rosbuild] Including /opt/ros/fuerte/share/roscpp/rosbuild/roscpp.cmake

[rosbuild] Including /opt/ros/fuerte/share/common-lisp/ros/roslisp/rosbuild/roslisp.cmake

[rosbuild] Including /opt/ros/fuerte/share/rospy/rosbuild/rospy.cmake

WARN, found multiple boost versions '[(1, 49, 0, '/usr/local', '/usr/local/include', True, True), (1, 49, 0, '/usr/local', '/usr/local/include', True, True)]', using latestWARN, found multiple boost versions '[(1, 49, 0, '/usr/local', '/usr/local/include', True, True), (1, 49, 0, '/usr/local', '/usr/local/include', True, True)]', using latest-- Configuring done

-- Generating done

CMake Warning:

Manually-specified variables were not used by the project:

CMAKE_TOOLCHAIN_FILE

-- Build files have been written to: /Users/tiagoribeiro/ros/image_common/image_transport/build cd build && make -l4

[ 0%] Built target rospack_genmsg_libexe

[ 0%] Built target rosbuild_precompile

Linking CXX shared library ../lib/libimage_transport.dylib

clang: warning: argument unused during compilation: '-pthread'

ld: warning: ignoring file /usr/lib/libtinyxml.dylib, missing required architecture x86_64 in file /usr/lib/libtinyxml.dylib (2 slices)

Undefined symbols for architecture x86_64:

"TiXmlDocument::LoadFile(char const*, TiXmlEncoding)", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"TiXmlDocument::TiXmlDocument()", referenced from:

pluginlib::ClassLoader<image_transport::subscriberplugin>::determineAvailableClasses() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"TiXmlNode::~TiXmlNode()", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

 TiXmlDocument::~TiXmlDocument() in image_transport.o

  TiXmlDocument::~TiXmlDocument() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"TiXmlElement::GetText() const", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"TiXmlElement::Attribute(char const*) const", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"TiXmlNode::FirstChildElement(char const*) const", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"TiXmlNode::FirstChildElement() const", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"TiXmlNode::NextSiblingElement(char const*) const", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

"vtable for TiXmlDocument", referenced from:

  pluginlib::ClassLoader<image_transport::SubscriberPlugin>::determineAvailableClasses() in image_transport.o

  TiXmlDocument::~TiXmlDocument() in image_transport.o

  TiXmlDocument::~TiXmlDocument() in image_transport.o

  pluginlib::ClassLoader<image_transport::PublisherPlugin>::determineAvailableClasses() in image_transport.o

NOTE: a ... (more)

edit flag offensive delete link more

Comments

I did not have any trouble with it. There seems to be a problem with your version of tinyxml. Are you sure you only have one version installed? Generally HomeBrew installs to /usr/local/lib rather than /usr/lib. Search for libtinyxml.dylib and see if multiple exist (potentially from MacPorts

david.hodo gravatar imagedavid.hodo ( 2012-10-04 09:55:08 -0600 )edit

or Fink). Also if the previous answer fixed your problem please mark the answer as correct.

david.hodo gravatar imagedavid.hodo ( 2012-10-04 09:55:41 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2012-10-04 03:26:45 -0600

Seen: 888 times

Last updated: Oct 04 '12