编译依赖ndt_gpu库的包,遇到Eigen报错

背景

使用NDT建图,帧率比较慢,打算使用gpu加速计算。

ndt_gpu是一个使用gpu加速ndt计算的库,首先在工作空间编译这个包。

然后在ndtMap包中链接这个库,其CMakelists.txt添加如下内容,

SET(CUDA_INCLUDE_DIRS /usr/local/cuda-10.0/include)
find_package(CUDA)
if (CUDA_FOUND)
    add_definitions(-DCUDA_FOUND)
    list(APPEND PCL_OPENMP_PACKAGES ndt_gpu)
endif ()

find_package(catkin REQUIRED COMPONENTS
            ${PCL_OPENMP_PACKAGES}
            )

编译成功!

运行却报错如下:

ndtMap: /usr/local/gtsam/include/gtsam/3rdparty/Eigen/Eigen/src/Core/DenseStorage.h:109:
Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 16>::plain_array() [with T = float; int Size = 16; int MatrixOrArrayOptions = 0]:
Assertion `(internal::UIntPtr(eigen_unaligned_array_assert_workaround_gcc47(array)) & (15)) == 0 &&
"this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" "
**** READ THIS WEB PAGE !!! ****"‘ failed.
Aborted (core dumped)

问题解决思路

https://blog.csdn.net/wojiushixiangshi/article/details/78356271

http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html (更多详情需要参考这个网址)

解决方案:

在ndt_gpu库的CMakeLists.txt中添加下述指令,重新编译即可。

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -O3 -mtune=native ")

原文地址:https://www.cnblogs.com/gdut-gordon/p/10940684.html

时间: 2024-10-28 20:11:56

编译依赖ndt_gpu库的包,遇到Eigen报错的相关文章

Eclipse 插件之间互相依赖, 导出Jar包安装, 报错“java.lang.NoClassDefFoundError”

在开发 插件A 与 插件 B 过程中, Plugin A 需要使用到 Plugin B 的某一个类 ClassB, 假设ClassB 位于 Plugin B  的PackageB 中, 那么需要在Plugin B 的manifest.mf 文件中添加: Export-Package: PackageB 并在Plugin B 的manifest.mf 文件中添加: Import-Package: PackageB 以此声明依赖关系. 分别导出两个插件的Jar包后,拷贝到Eclipse的/plugi

编译mysql时,到一半的时候报错,c++死掉

编译mysql时,到一半的时候报错,c++死掉,因为内存太小导致,创建交换分区或者增加内存重新编译. 设置2G交换分区来用下 : # dd if=/dev/zeroof=/swapfile bs=1k count=2048000 --获取要增加的2G的SWAP文件块 # mkswap/swapfile     -- 创建SWAP文件 # swapon/swapfile     -- 激活SWAP文件 # swapon -s            -- 查看SWAP信息是否正确 # echo"/v

python中引入包的时候报错AttributeError: module &#39;sys&#39; has no attribute &#39;setdefaultencoding&#39;解决方法?

python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdefaultencoding('utf-8') AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法: 1.python2中解决方法:reload(sys)sys.setdefaultencoding('utf-8'

JAVAME导入外部jar包的时候报错 Errors during build.Errors running builder ‘Preverification’ on project ‘XXXXX’.

在eclipse下的日志文档: !SESSION 2014-05-19 17:23:10.833 ----------------------------------------------- eclipse.buildId=4.3.2.M20140221-1700 java.version=1.8.0_05 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN

同时安装Python2与Python3,安装第三方包,老是报错

同时安装Python2与Python3,安装第三方包,老是报错提示Fatal error in launcher: Unable to create process using '"',那可能是环境变量有冲突了. 解决办法: 是在环境变量Path中上下移调整两个"PythonX/Scripts"位置,使之位于前两位(哪个版本常用就靠前): 是使用另一种命令python3 -m pip install requests来安装.

测试库中文字符集乱码 PLsql报错中有乱码、有问号???等问题

测试库中文字符集乱码PLsql报错中有乱码.有问好???等问题,是字符集导致sqlplus /nologconn / as sysdbastartup 1.查询数据库中的字符集设置SQL> select userenv('language') from dual;USERENV('LANGUAGE') AMERICAN_AMERICA.WE8MSWIN12522.修改数据库的字符集SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

解决Eclips中使用V7兼容包的主题报错的问题

新建项目默认会使用v7包中的主题,如果你workplace中没有v7库,那是一定会报错的. 1.导入v7jar,没用,因为需要的是v7的资源文件 2.既然如此,导入v7的整个项目应该ok了吧,import之后,尼玛还报错,百思不得骑姐,删了导,导了删,把SDK都弄坏了还是报错.并且build path还不报错. 终极大招,原来原因是因为v7库和项目没有在一个盘符下,import的时候,注意要勾选copy projects into workplace,也就是把依赖库从sdk复制一份到当前的wor

CentOS 6.5 Maven 编译 Apache Tez 0.8.3 踩坑/报错解决记录

最近准备学习使用Tez,因此从官网下载了最新的Tez 0.8.3源码,按照安装教程编译使用.平时使用的集群环境是离线的,本打算这一次也进行离线编译,无奈一编译就开始报缺少jar包的错,即使手动下载jar包复制到目录.尝试使用Maven的包安装命令,还是无法消除错误.只得尝试在联网环境下先进行编译(环境与离线集群环境相同),再看编译得到的jar包是否可以在Hadoop离线集群上正常使用了. 之前从没接触过Maven,网上资料也多是和Eclipse放在一起,作为Eclipse的一个插件来说明的.时间

本地仓库有jar包maven依然报错的原因

本地Maven仓库有所需jar包依然报错,missing------ 既然有这个jar包为什么还会报错呢? 找到本地仓库后发现里面有一个_remote.repositories文件 问题在_remote.repositories >nexus说明这个依赖是从私服中下载下来的.而此时我是连不上私服的,所以会有lastupdate后缀的文件出现,但是下载不到. 查看一个能正常显示的依赖,发现_remote.repositories 这代表从远程仓库下载. 于是将报错依赖的_remote.reposi