Compiling ROS with boost >1.41
Hello everybody.
I have Ubuntu 64 bits 10.04 with kernel 2.6.32-38-generic and gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3. The problem I have is that I need to compile ROS (Electric or Fuerte) with boost 1.47, but it looks like it only works for boost 1.41 or lower. Is there any workaround?
Following this tutorial , I've successfully compiled ROS Fuerte with boost 1.41. But when I try to compile ROS Fuerte with boost 1.42 (or higher, I've also tried with boost 1.44 and 1.47 and they give even more errors), and this is the output I get:
~/ros-underlay/build$ make -j
[Everything goes ok up to the following point]
[ 29%] Generating Lisp code from actionlib/TestRequestResult.msg
Linking CXX executable ../bin/rospack
[ 29%] Generating Lisp code from actionlib/TestRequestFeedback.msg
[ 29%] [ 29%] Linking CXX executable ../bin/rosstack
Generating Python from MSG rosgraph_msgs/Log
Generating Python from MSG actionlib/TwoIntsActionResult
[ 29%] Generating Lisp code from actionlib/TwoIntsAction.msg
[ 29%] Built target rosgraph_msgs_gencpp
../lib/librospack.so: undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
collect2: ld returned 1 exit status
make[2]: *** [bin/rospack] Error 1
make[1]: *** [rospack/CMakeFiles/rospackexe.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Scanning dependencies of target std_srvs_gencpp
[ 29%] Generating Python from MSG actionlib/TwoIntsActionFeedback
[ 29%] Generating C++ code from std_srvs/Empty.srv
[ 29%] [ 29%] Generating Lisp code from actionlib/TwoIntsActionGoal.msg
Generating Python from MSG actionlib/TwoIntsGoal
[ 29%] ../lib/librospack.so: undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
collect2: ld returned 1 exit status
make[2]: *** [bin/rosstack] Error 1
make[1]: *** [rospack/CMakeFiles/rosstackexe.dir/all] Error 2
Before executing make, I execute cmake, with the following result, which perhaps could be helpful in guessing what's happening:
~/ros-underlay/build$ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ros/fuerte
CMake Error: The source directory "/home/findeton" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
findeton@findeton-laptop:~/ros-underlay$ cd build
findeton@findeton-laptop:~/ros-underlay/build$ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ros/fuerte
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- 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
-- +++ catkin
-- Found PythonInterp: /usr/bin/python2.6
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found gtest: gtests will be built.
TODO: implement add_roslaunch_check() in rostest-extras.cmake.
-- BUILD_SHARED_LIBS is ...
Can you run the following instead of "make -j", and then add the results to your question? "export VERBOSE=1; make -j1"