当前位置: 移动技术网 > IT编程>脚本编程>Python > pcl-for-android 编译记录

pcl-for-android 编译记录

2020年10月30日  | 移动技术网IT编程  | 我要评论
使用的编译方法链接 https://github.com/bashbug/pcl-for-androidPCL官方链接 https://github.com/PointCloudLibrary/pcl下载工程git clone https://github.com/bashbug/pcl-for-android.git该工程没有包含pcl 代码, pcl代码是执行该工程脚本后去下载的.Installsudo apt install cmake git make ninja python3-pi

使用的编译方法链接 https://github.com/bashbug/pcl-for-android

PCL官方链接 https://github.com/PointCloudLibrary/pcl

下载工程

git clone https://github.com/bashbug/pcl-for-android.git

该工程没有包含pcl 代码, pcl代码是执行该工程脚本后去下载的.

Install

sudo apt install cmake git make ninja python3-pip
sudo pip3 install conan

安装依赖的工具,该开源库使用conan进行工程构建, Conan, 是C/C++ Open Source Package Manager, 官网地址https://conan.io/

Cross-compilation

./pcl-build-for-android.sh armeabi-v7a

由于armeabi-v7a比较常用,所以用了这个. 执行该命令,首先会去下载依赖工具包

  • flann 1.9.1
  • lz4 1.9.1
  • boost 1.70.0
  • PCL 1.9.1 (Eigen 3.3.7 gets automatically installed)

下载完后就编译, 下载和编译生成的库在 目录~/.conan/下面

Run App

app目录是example-app, 默认是使用arm64-v8a, 所以需要修改下build.gradle

android {
    defaultConfig {
        ...
        ndk {
            abiFilters "armeabi-v7a"
        }
    }
...

最后运行就可以

碰到的错误

编译app时有一个错误

Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)

解决的方法是将~/.conan/data/eigen/3.3.7/conan/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 下面的FindEigen3.cmake文件删除.

具体什么原因还不知道.主要列下我在查找解决这个错误得到的一些信息

  1. 在CMakelist.txt中对Eigen3_INCLUDE_DIRS 进行赋值不起作用
  2. Eigen 只有头文件, 直接引用就可以,不需要编译
  3. 根据错误的track, 是通过Findplc.cmake 调用到FindEigen3.cmake的. Findplc.cmake 的文件执行的是目录是example-app/app/.externalNativeBuild/cmake/debug/armeabi-v7a/ , 该目录已经包含了所有模块的 Find***.cmake
  4. 其他模块 在.conan目录下面都没有 Find***.cmake 文件

所以猜测 Findplc.cmake 本来应该在同级目录下去查找FindEigen3.cmake文件, 但却找到.conan目录下面去,所以将.conan下的文件删除

本文地址:https://blog.csdn.net/yizhongliu/article/details/109385131

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网