Mein CMakeLists.txt
umfasstBoost-Dateisystem Segmentierungsfehler in C++ 11 mit ROS
add_definitions(-std=c++11)
Und es kompiliert mit den folgenden Warnungen:
/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
Und es seg-Fehler, wenn ich die ausführbare Datei ausführen.
GDB, fand ich die Ursache:
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
Scheint, wie boost :: filesystem funktioniert nicht? Irgendwelche Ideen, wie Sie das beheben können?
Ich versuchte apt-get update
und apt-get upgrade
und Neustart. (Ich bin auf Ubuntu 16.04.)
GCC brach die ABI-Kompatibilität für 'std :: string', wenn Sie von gcc4 zu gcc5 wechseln, stellen Sie sicher, dass sowohl der Boost als auch der Code kompilierbar kompiliert wurde. –