簡體   English   中英

Android Studio NDK ::錯誤:未知類型名稱'__va_list'

[英]Android Studio NDK :: Error: Unknown type name '__va_list'

在我們的應用程序中要集成OpenCV c / c ++庫。 我已經成功集成了OpenCV庫,但是當嘗試使用android NDK r12b進行構建時,出現以下構建錯誤。

Build command failed.
Error while executing process C:\Users\Dell\AppData\Local\Android\Sdk\cmake\3.10.2.4988404\bin\cmake.exe with arguments {--build D:\Project\WorkSpace\AndroidStudio\Sample\Sample2NativeSample\app\.externalNativeBuild\cmake\debug\x86 --target native-lib}
[0/1] Re-running CMake...
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/.externalNativeBuild/cmake/debug/x86
[1/150] Building CXX object CMakeFiles/native-lib.dir/src/features/RVUPHistogramFeature.cpp.o
FAILED: CMakeFiles/native-lib.dir/src/features/RVUPHistogramFeature.cpp.o 
D:\Project\Android\android-ndk-r12b\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe -target i686-none-linux-android -gcc-toolchain D:/Project/Android/android-ndk-r12b/toolchains/x86-4.9/prebuilt/windows-x86_64 --sysroot=D:/Project/Android/android-ndk-r12b/platforms/android-15/arch-x86  -Dnative_lib_EXPORTS -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/algorithm -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/deps/msvc/sys -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/features -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/opencv -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/opencv2/imgproc -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/opencv2/core -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/opencv2/ml -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/opencv2 -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/prediction -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/wsq -ID:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include -isystem D:/Project/Android/android-ndk-r12b/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem D:/Project/Android/android-ndk-r12b/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include -isystem D:/Project/Android/android-ndk-r12b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -fno-exceptions -fno-rtti -fexceptions -frtti -frtti -fexceptions -O0 -fno-limit-debug-info  -fPIC -MD -MT CMakeFiles/native-lib.dir/src/features/RVUPHistogramFeature.cpp.o -MF CMakeFiles\native-lib.dir\src\features\RVUPHistogramFeature.cpp.o.d -o CMakeFiles/native-lib.dir/src/features/RVUPHistogramFeature.cpp.o -c D:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/src/features/RVUPHistogramFeature.cpp
In file included from D:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/src/features/RVUPHistogramFeature.cpp:1:
In file included from D:/Project/WorkSpace/AndroidStudio/Sample/Sample2NativeSample/app/src/main/cpp/include/features\RVUPHistogramFeature.h:4:
D:/Project/Android/android-ndk-r12b/platforms/android-15/arch-x86/usr/include\stdio.h:257:37: `*error: unknown type name '__va_list'; did you mean 'va_list'?*`
int      vfprintf(FILE *, const char *, __va_list);
                                        ^
D:\Project\Android\android-ndk-r12b\toolchains\llvm\prebuilt\windows-x86_64\bin\..\lib64\clang\3.8.256229\include\stdarg.h:30:27: note: 'va_list' declared here
typedef __builtin_va_list va_list;

在這里,檢查我的CMakeLists.txt

cmake_minimum_required(VERSION 3.4.1)

include_directories(include/algorithm
        include/deps/msvc/sys
        include/features
        include/opencv
        include/opencv2/imgproc
        include/opencv2/core
        include/opencv2/ml
        include/opencv2
        include/prediction
        include)

file(GLOB_RECURSE SOURCES
        "src/features/*.cpp"
        "src/opencv/core/*.cpp"
        "src/opencv/core/*.hpp"
        "src/opencv/imgproc/*.cpp"
        "src/opencv/imgproc/*.h"
        "src/opencv/ml/*.cpp"
        "src/opencv/ml/*.hpp"
        "src/prediction/*.cpp"
        "src/*.cpp"
        "src/*.c")

add_library( # Sets the name of the library.
        native-lib

        # Sets the library as a shared library.
        SHARED

        # Provides a relative path to your source file(s).
        native-lib.cpp
        ${SOURCES})


find_library( # Sets the name of the path variable.
        log-lib

        log)

find_package(ZLIB)

target_link_libraries( # Specifies the target library.
        native-lib

        ${log-lib}
        ${ZLIB_LIBRARIES})

還要檢查我的gradle cmake聲明。

externalNativeBuild {
            cmake {
                cppFlags "-frtti -fexceptions"
                arguments '-DANDROID_TOOLCHAIN=clang',
                        '-DANDROID_STL=gnustl_static',
                        '-DANDROID_CPP_FEATURES=exceptions rtti',
                        '-DLOCAL_ALLOW_UNDEFINED_SYMBOLS = true'
                abiFilters  "armeabi-v7a",  "arm64-v8a", "x86", "x86_64"
            }
        }

我嘗試了許多解決方案,也嘗試使用最新的NDK r20,但仍然收到此錯誤。 我該如何解決這個錯誤?

這是特定於編譯器的東西。 據我所知,大多數編譯器將使用va_list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM