[英]boost filesystem segmentation fault in C++11 with ROS
我的CMakeLists.txt
包括
add_definitions(-std=c++11)
並使用以下警告進行編譯:
/usr/bin/ld: warning: libboost_filesystem.so.1.58.0, needed by /opt/ros/kinetic/lib/libroscpp.so, may conflict with libboost_filesystem.so.1.64.0
當我運行可執行文件時,它會出現段錯誤。
使用gdb,我找到了原因:
Thread 1 "pg_generator" received signal SIGSEGV, Segmentation fault.
0x00007ffff762935d in boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*) () from /usr/local/boost/1.64.0/stage/lib/libboost_filesystem.so.1.64.0
似乎boost :: filesystem無法正常工作? 任何想法如何解決這一問題?
我嘗試了apt-get update
以及apt-get upgrade
和重啟。 (我在Ubuntu 16.04上。)
我想我也遇到了同樣的問題。 經過長時間的調試,我發現我們倆都做過同樣的事情:我們使用兩個版本的boost構建我們的應用程序。 好吧,這是真正的問題,而不是C ++ 11和Boost之間的沖突。
由於ros使用Boost 1.58,因此我們最好在程序的其他部分使用相同的Boost。 (我使用Boost 1.60,而您使用Boost 1.64)
當程序中只有一個增強版本時,該問題將得到解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.