问题描述
我最近更新我的提振1.59和安装在/ usr /本地。我的系统默认是安装在/ usr /和1.46。我使用Ubuntu 12.04。
I recently updated my boost to 1.59 and installed in /usr/local. My system default is installed in /usr/ and is 1.46. I am using ubuntu 12.04.
我的code碱基使用水电ROS(机器人操作系统)。我有被更新之前做工精细一个相当大的code基地。但现在我得到
My code base uses ROS Hydro (Robot Operating System). I have a rather large code base which was working fine before the update. But now I get
terminate called after throwing an instance of 'boost::thread_interrupted'
我的堆栈跟踪
0x00007ffff573d0d5 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) where
#0 0x00007ffff573d0d5 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff574083b in __GI_abort () at abort.c:91
#2 0x00007ffff608f69d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff608d846 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff608d873 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff608d96e in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff7f1cc3e in boost::this_thread::interruption_point() () from /usr/local/lib/libboost_thread.so.1.59.0
#7 0x00007ffff7001752 in bool boost::condition_variable::timed_wait<boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> >(boost::unique_lock<boost::mutex>&, boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000l> const&) () from /opt/ros/hydro/lib/libroscpp.so
#8 0x00007ffff6fff429 in ros::CallbackQueue::callAvailable(ros::WallDuration) () from /opt/ros/hydro/lib/libroscpp.so
#9 0x00007ffff7045f90 in ros::SingleThreadedSpinner::spin(ros::CallbackQueue*) () from /opt/ros/hydro/lib/libroscpp.so
#10 0x00007ffff702cd1b in ros::spin() () from /opt/ros/hydro/lib/libroscpp.so
#11 0x000000000041b795 in main ()
它显示了异常从ROS核心库,不应该发生起源。
It shows the exception originates from ros core library which should not be happening.
可执行的LDD是:
$ ldd devel/lib/visensor_node/visensor_nod
linux-vdso.so.1 => (0x00007ffff934d000)
libvisensor.so => /home/eeuser/ros_workspaces/HeloRosProject/devel/lib/libvisensor.so (0x00007f55489e10
00)
libopencv_core.so.2.4 => /opt/ros/hydro/lib/libopencv_core.so.2.4 (0x00007f55485b6000)
libopencv_calib3d.so.2.4 => /opt/ros/hydro/lib/libopencv_calib3d.so.2.4 (0x00007f5548321000)
libimage_transport.so => /opt/ros/hydro/lib/libimage_transport.so (0x00007f55480a0000)
libroslib.so => /opt/ros/hydro/lib/libroslib.so (0x00007f5547e8f000)
libroscpp.so => /opt/ros/hydro/lib/libroscpp.so (0x00007f5547b53000)
librosconsole.so => /opt/ros/hydro/lib/librosconsole.so (0x00007f554792d000)
libdynamic_reconfigure_config_init_mutex.so => /opt/ros/hydro/lib/libdynamic_reconfigure_config_init_mutex.so (0x00007f5547727000)
libroscpp_serialization.so => /opt/ros/hydro/lib/libroscpp_serialization.so (0x00007f5547524000)
librostime.so => /opt/ros/hydro/lib/librostime.so (0x00007f55472fd000)
libboost_system.so.1.46.1 => /usr/lib/libboost_system.so.1.46.1 (0x00007f55470cb000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5546eae000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5546bae000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f55468b1000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f554669b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f55462dc000)
libboost_thread.so.1.59.0 => /usr/local/lib/libboost_thread.so.1.59.0 (0x00007f55462b6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5548a79000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f554609f000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f5545e97000)
libopencv_flann.so.2.4 => /opt/ros/hydro/lib/libopencv_flann.so.2.4 (0x00007f5545c24000)
libopencv_imgproc.so.2.4 => /opt/ros/hydro/lib/libopencv_imgproc.so.2.4 (0x00007f5545790000)
libopencv_features2d.so.2.4 => /opt/ros/hydro/lib/libopencv_features2d.so.2.4 (0x00007f55454e9000)
libmessage_filters.so => /opt/ros/hydro/lib/libmessage_filters.so (0x00007f55452e3000)
libtinyxml.so.2.6.2 => /usr/lib/libtinyxml.so.2.6.2 (0x00007f55450ce000)
libclass_loader.so => /opt/ros/hydro/lib/libclass_loader.so (0x00007f5544eb1000)
libboost_signals.so.1.46.1 => /usr/lib/libboost_signals.so.1.46.1 (0x00007f5544c9c000)
libboost_filesystem.so.1.46.1 => /usr/lib/libboost_filesystem.so.1.46.1 (0x00007f5544a7e000)
libconsole_bridge.so => /opt/ros/hydro/lib/libconsole_bridge.so (0x00007f5544874000)
librospack.so => /opt/ros/hydro/lib/librospack.so (0x00007f554462c000)
libboost_thread.so.1.46.1 => /usr/lib/libboost_thread.so.1.46.1 (0x00007f5544413000)
libxmlrpcpp.so => /opt/ros/hydro/lib/libxmlrpcpp.so (0x00007f55441f5000)
libcpp_common.so => /opt/ros/hydro/lib/libcpp_common.so (0x00007f5543fec000)
librosconsole_log4cxx.so => /opt/ros/hydro/lib/librosconsole_log4cxx.so (0x00007f5543dda000)
librosconsole_backend_interface.so => /opt/ros/hydro/lib/librosconsole_backend_interface.so (0x00007f5543bd8000)
liblog4cxx.so.10 => /usr/lib/liblog4cxx.so.10 (0x00007f55437f8000)
libboost_regex.so.1.46.1 => /usr/lib/libboost_regex.so.1.46.1 (0x00007f55434f6000)
libboost_system.so.1.59.0 => /usr/local/lib/libboost_system.so.1.59.0 (0x00007f55434f0000)
libPocoFoundation.so.9 => /usr/lib/libPocoFoundation.so.9 (0x00007f554319f000)
libboost_program_options.so.1.46.1 => /usr/lib/libboost_program_options.so.1.46.1 (0x00007f5542f39000)
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f5542a3c000)
libaprutil-1.so.0 => /usr/lib/libaprutil-1.so.0 (0x00007f5542818000)
libapr-1.so.0 => /usr/lib/libapr-1.so.0 (0x00007f55425df000)
libicuuc.so.48 => /usr/lib/libicuuc.so.48 (0x00007f5542275000)
libicui18n.so.48 => /usr/lib/libicui18n.so.48 (0x00007f5541eac000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5541ca8000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f5541a6b000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f554180c000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f5541431000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f554122e000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f5540ff4000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f5540dca000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f5540bc5000)
libicudata.so.48 => /usr/lib/libicudata.so.48 (0x00007f553f854000)
In particular this might be of interest :
$ ldd devel/lib/visensor_node/visensor_node | grep lib\boost
libboost_system.so.1.46.1 => /usr/lib/libboost_system.so.1.46.1 (0x00007fcc9abdb000)
libboost_thread.so.1.59.0 => /usr/local/lib/libboost_thread.so.1.59.0 (0x00007fcc99dc6000)
libboost_signals.so.1.46.1 => /usr/lib/libboost_signals.so.1.46.1 (0x00007fcc987ac000)
libboost_filesystem.so.1.46.1 => /usr/lib/libboost_filesystem.so.1.46.1 (0x00007fcc9858e000)
libboost_thread.so.1.46.1 => /usr/lib/libboost_thread.so.1.46.1 (0x00007fcc97f23000)
libboost_regex.so.1.46.1 => /usr/lib/libboost_regex.so.1.46.1 (0x00007fcc97006000)
libboost_system.so.1.59.0 => /usr/local/lib/libboost_system.so.1.59.0 (0x00007fcc97000000)
libboost_program_options.so.1.46.1 => /usr/lib/libboost_program_options.so.1.46.1 (0x00007fcc96a49000)
对于LDD libvisensor.so
ldd for libvisensor.so
linux-vdso.so.1 => (0x00007fff7e3fe000)
libboost_thread.so.1.59.0 => /usr/local/lib/libboost_thread.so.1.59.0 (0x00007f29b4b60000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f29b4832000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f29b4536000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f29b4320000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f29b3f60000)
/lib64/ld-linux-x86-64.so.2 (0x00007f29b4c1d000)
libboost_system.so.1.59.0 => /usr/local/lib/libboost_system.so.1.59.0 (0x00007f29b3f5b000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f29b3d53000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f29b3b35000)
我已经注意到了一些有趣的原因,既有Boost库链接IE浏览器。 1.46和1.59也是版本。
我应该如何去修复这个错误?
I have noticed that for some funny reason, both boost libraries are linked ie. version 1.46 and also 1.59.How should I go about fixing this error?
推荐答案
ROS水电是不是升压1.59兼容。如果你安装了提升1.59,而ROS水电也已安装你要遇到的问题。因为它是在ROS回答下列页的说明,但我也将它放在我的答案复制摘录的完整性。
ROS Hydro is not compatible with Boost 1.59. If you install Boost 1.59 while ROS Hydro is also installed you are going to run into problems. As it is explained on the following page in ROS answers but I will also copy an excerpt from it for completeness on my answer.
ROS的来源安装将与其他版本的编译
提升,但由于二进制不兼容性的可能性,在
ROS的二进制版本必须使用相同版本的安装
提高他们被内置。如果您想使用ROS与
比标准版提升其他版本的,你就必须建立
ROS从源代码。
这篇关于升压更新问题,我的code的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!