gpt4 book ai didi

c++ - 使用 pcl::ExtractIndices(pcl、ROS、catkin)在 main 之前出现段错误

转载 作者:搜寻专家 更新时间:2023-10-31 02:23:15 28 4
gpt4 key购买 nike

我正尝试在 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 语句未执行。请注意,我实际上什至没有在 main 中调用 myFunction()。唯一的错误信息是

Segmentation fault (core dumped)

当我注释掉 myFunction 中的 ExtractIndices 行时,问题消失了,代码运行正常:

     // ExtractIndices<PointXYZ> rangefilter;

如果有帮助的话,我正在使用 ROS 在 Ubuntu 上运行它并使用 catkin_make 编译它。

我真的很感激能帮我调试这个,因为我已经在这个问题上卡住了一段时间了。感谢阅读!

最佳答案

感谢评论者的帮助,我才得以找到问题所在。我用 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}")

成功了!

关于c++ - 使用 pcl::ExtractIndices(pcl、ROS、catkin)在 main 之前出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29526266/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com