Ошибка сегментации перед главной с помощью pcl :: ExtractIndices (pcl, ROS, catkin)

Я пытаюсь запустить следующее в C ++:

#include <pcl_ros/point_cloud.h>
#include "pcl/pcl_base.h"#include "pcl/PointIndices.h"#include "pcl/conversions.h"#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/filters/voxel_grid.h>

using namespace std;
using namespace pcl;

void myFunction() {
...
ExtractIndices<PointXYZ> rangefilter;
...
}

int main() {
cout << "Hello" << endl;
}

Код компилируется, но я получаю ошибку сегментации, как только запускаю его; оператор cout не выполняется. Обратите внимание, что я даже не вызываю myFunction () в main. Единственное сообщение об ошибке

Segmentation fault (core dumped)

Когда я закомментирую строку ExtractIndices в myFunction, проблема исчезнет, ​​и код будет работать нормально:

     // ExtractIndices<PointXYZ> rangefilter;

Я запускаю это на Ubuntu с ROS и компилирую с помощью catkin_make, если это поможет.

Я был бы очень признателен за помощь в устранении этого, поскольку я застрял на этой проблеме некоторое время. Спасибо за прочтение!

1

Решение

Благодаря помощи комментаторов, я смог найти проблему. Я сделал обратную трассировку с GDB и погуглил вывод:

boost::math::lanczos::lanczos_initializer<boost::math::lanczos::lanczos17m64, long double>::init::init()

Потом нашел это: http://answers.ros.org/question/194699/segmentation-fault-when-using-correspondencerejectorsampleconsensus/

Что говорит о том, что вы не можете использовать C ++ 11 с PCL, поэтому я удалил эту строку из моего файла CMakeLists.txt:

set(CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")

И это сработало!

1

Другие решения