C++ OpenCV ANDROID_ABI:并非所有变体都显示

C++ OpenCV ANDROID_ABI:并非所有变体都显示,c++,opencv,android-ndk,C++,Opencv,Android Ndk,我从下载了OpenCV 2.4.13版本。然后我使用android的CMake gui配置了CMake项目 有一个名为ANDROID_ABI的变量,我可以使用下拉列表为它选择值。但在此列表中,我只能选择armeabi、带VFP的armeabi-v6、带霓虹灯的armeabi-v7a、带VFPV3的armeabi-v7a 我可以使用CMake控制台为arm64配置和生成项目,也可以修改CMake脚本并手动列出它。但当我试图构建生成的项目时,我得到了错误未知类型名'\uuuuuint128\u t'

我从下载了OpenCV 2.4.13版本。然后我使用android的CMake gui配置了CMake项目

有一个名为ANDROID_ABI的变量,我可以使用下拉列表为它选择值。但在此列表中,我只能选择armeabi、带VFP的armeabi-v6、带霓虹灯的armeabi-v7a、带VFPV3的armeabi-v7a

我可以使用CMake控制台为arm64配置和生成项目,也可以修改CMake脚本并手动列出它。但当我试图构建生成的项目时,我得到了错误
未知类型名'\uuuuuint128\u t'\uuuuuint128\u t
。所以我认为有一些原因导致我不能从下拉列表中选择这个变体


我如何选择arm64变体进行构建,以及为什么会出现这种错误?

您的工具链似乎没有armv8 64位选项。 但是,有一个新的opencv 3.0版本,您的uint错误可能会得到修复:

如果您的工具链不支持64位,您可以为arm64制作自己的工具链

$NDK/build/tools/make-standalone-toolchain.sh \
--arch=arm --platform=android-21 --install-dir=/tmp/my-android-toolchain


别忘了在cmake android选项中将android_native_level设置为21(android 5.0.1),因为64位支持是在拥有android 5或更高版本的设备上完成的。

感谢您的回复。我现在可以使用OpenCV 3.1,但我想知道我做错了什么。如果我可以使用NDK使用预编译的OpenCV构建arm64.so文件,这是否意味着我有arm64工具链?现在我还有其他问题。不知何故,我将cmake目标平台更改为arm64,现在我构建OpenCV 2.4.13 arm64没有问题,但我不知道如何将其切换回arm平台)=。使用cmake中的默认工具链,您将拥有armeabi和armv7(不同版本),因此,您可以选择首选工具链。选中此链接,有android默认工具链。干杯。windows有什么方法吗?这似乎是一个专门用于linux的sh文件……是的,sh文件是用于linux的,但是应该有python脚本,它们执行相同的过程,并且应该在windows中工作$NDK/build/tools/make_standalone_toolchain.py \--arch arm--API21--install dir/tmp/my android toolchain如果您在制作独立工具链时遇到问题,您可以安装mingw linux shell for windows来克服这些问题。
opencv 4.0.1
。。。