2
我想为android构建OpenCV 3.2。当我尝试为armeabi-v7a配置构建它时,我没有编译它的问题。然而,当我试图编译它的arm64-V8A硬件我收到以下消息:构建OpenCV for Android的错误arm64-v8a
/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:87:12: error: expected ')'
void (*sa_sigaction)(int, struct siginfo*, void*);
^
/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/asm/signal.h:102:24: note: expanded from macro 'sa_sigaction'
#define sa_sigaction _u._sa_sigaction
^
/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:87:10: note: to match this '('
void (*sa_sigaction)(int, struct siginfo*, void*);
^
/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:87:12: error: duplicate member '_u'
void (*sa_sigaction)(int, struct siginfo*, void*);
^
/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/asm/signal.h:102:22: note: expanded from macro 'sa_sigaction'
#define sa_sigaction _u._sa_sigaction
^
/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:86:18: note: previous declaration is here
sighandler_t sa_handler;
^
/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/asm/signal.h:101:20: note: expanded from macro 'sa_handler'
#define sa_handler _u._sa_handler
这是CMake的是如何配置:
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_TOOLCHAIN -DANDROID_NDK=$NDK_ROOT -DANDROID_ABI=arm64-v8a -DANDROID_NATIVE_API_LEVEL=21 -DCMAKE_INSTALL_PREFIX=~/opencv/arm64 -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TIFF=false -DTIFF_LIBRARY=$TIFF_LIBRARY -DTIFF_INCLUDE_DIR=$TIFF_INCLUDE_DIR -DBUILD_OPENEXR=false
有没有其他人遇到这个问题?现在我已经挣扎了两天了。任何帮助将不胜感激。
编辑:我注意到,CMake的。OUPUTS这一行:
Target: Android 21 armv7-a
即使我设置的ABI arm64-V8A。任何想法为什么?
尝试[this](https://github.com/skanti/Android-Manual-Build-Command-Line)。在开始设置时有点困难,但一旦完成,它基本上是没有Java UI **的普通'C++'编码**。 –
所有这些路径都是arm32头文件,而不是arm64头文件。您的构建配置有问题。 –