簡體   English   中英

使用ROS增強C ++ 11中的文件系統分段錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM