【问题标题】:Range_Image of PCL crashes ApplicationPCL 的 Range_Image 崩溃应用程序
【发布时间】:2022-09-23 16:09:32
【问题描述】:

我在 Windows 版本 1.12.1 中使用预编译/一体化 PCL (PointCloudLibrary)。

  • IDE:Visual Studio 2019

有了这个,我已经可以使用可视化器了,所以库的某些部分已经可以正常工作了。

当我想创建一个 RangeImage 对象时,我的程序要么运行到无限循环中,不再执行任何操作,要么在某些情况下被 cpp-standard-library 的“abort()”-函数终止。

创建此问题的最小示例如下所示:

#include <pcl/range_image/range_image.h>

int main () {
  pcl::RangeImage rangeImage;
  return 0;
}

====额外信息:================

  1. 编译时不显示错误或警告,但在调试模式 (x64) 下运行应用程序会出现所描述的问题。在发布模式 (x64) 下运行程序会给出来自 std::vector 库的“禁止内存访问”错误。 x86 未经测试。

  2. 当程序以 abort() 函数终止时,我在控制台中收到以下错误消息:

    Assertion failed: (internal::UIntPtr(array) & (31)) == 0 && \"this
    assertion is explained here: \" \"http://eigen.tuxfamily.org/dox-
    devel/group__TopicUnalignedArrayAssert.html\" \" **** READ THIS WEB PAGE
    !!! ****\", file C:\\Program
    Files\\Eigen3\\include\\eigen3\\Eigen\\src/Core/DenseStorage.h, line 128
    

    我浏览了错误消息推荐的网站,但我无法解决问题。我已经将 C++-Standard 设置为 c++17。

    ==============================

    有没有人遇到过这个问题并且知道什么可能导致这个问题?

    感谢您抽出宝贵的时间。

  • 您可以在程序上运行调试器或类似的东西(产生崩溃痕迹的东西)吗?

标签: c++ point-cloud-library pcl


【解决方案1】:

解决此问题的方法是使用本教程*1 中的说明构建新的 pcl 1.12.1(向下滚动,直到找到正确的版本):https://gist.github.com/UnaNancyOwen/59319050d53c137ca8f3

同样在 Visual Studio 中,“C/C++ > 代码生成 > 激活高级指令集”下的项目设置必须设置为 AVX2。

*1) 你不需要懂中文就可以完成本教程。如果您以前构建过 PCL,您将从这里获得所需的所有信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多