如何为不同的ABI构建PCL

时间:2019-07-07 16:31:21

标签: android cmake android-ndk point-cloud-library abi

我已经使用https://github.com/bashbug/pcl-for-android

的超级构建成功构建了点云库

PCL已针对 armeabi-v7a ABI建立了该版本。如何为其他ABI构建?

我尝试更改pcl-build-for-android.sh脚本,但是没有运气。我已经在脚本中更改了第一行:

#!/bin/bash

# specify the arm as abi, the api level for android kitkat as used by
# google tango and with gnustl_static the c++ support
# for more information look into the android.toolchain.cmake file
export ANDROID_ABI="arm64-v8a"
export ANDROID_NATIVE_API_LEVEL=android-19
export ANDROID_STL=gnustl_static
export ANDROID_STL_FORCE_FEATURES=ON
...

但是每次构建默认的armeabi-v7a版本时。我已经尝试了几次清洁和重建。

有帮助吗?

2 个答案:

答案 0 :(得分:0)

尝试将api级别修改为21,例如

export ANDROID_NATIVE_API_LEVEL=android-21

因为自api 21起,Android支持64位ABI。

答案 1 :(得分:0)

该构建脚本不适用于现代NDK,但可以使其变得很容易(如下所示)。有了它,我确实看到它是为arm64构建的,所以大概是您的问题是他们的旧cmake工具链文件中的一个错误(移动到现代NDK时,需要移动到NDK提供的文件而不是可用的存储库)。

不幸的是,存储库还存在许多其他问题(代码有些细微的错误在所有平台/编译器上都不可见,但在为Android构建时确实会显示出来)。它们似乎在很大程度上是无足轻重的。

torchtext