• NDK+MSYS2+Android sdk编译opencv源码


    由于今天太晚了,详细笔记有空再记。

        要添加的有ANDROID_ABI,这个根据需求添加自己需要的ABI

        

        然后是ANDROID_STL,因为gunstl已经不被支持,这里使用c++_shared或c++_static都可以。

       然后是ANDROID_STL,因为gunstl已经不被支持,这里使用c++_shared或c++_static都可以。

        

        添加完后点击“Configure”按钮,选择mingw作为生成工具,然后选择使用工具链交叉编译,点击“Next”。

     D:android-ndk-r17cuildcmakeandroid.toolchain.cmake

     

    指定CMAKE_MAKE_PROGRAM

    C:/msys64/mingw64/bin/mingw32-make.exe

     

     

     

    输出配置信息:

    General configuration for OpenCV 3.4.9 =====================================
      Version control:               unknown
    
      Platform:
        Timestamp:                   2020-04-01T14:38:54Z
        Host:                        Windows 10.0.18363 AMD64
        Target:                      Android 1 aarch64
        CMake:                       3.16.0
        CMake generator:             MinGW Makefiles
        CMake build tool:            C:/msys64/mingw64/bin/mingw32-make.exe
        Configuration:               Release
    
      CPU/HW features:
        Baseline:                    NEON FP16
          required:                  NEON
          disabled:                  VFPV3
    
      C/C++:
        Built as dynamic libs?:      NO
        C++11:                       YES
        C++ Compiler:                D:/android-ndk-r17c/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe  (ver 3.8)
        C++ flags (Release):         -isystem D:/android-ndk-r17c/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Winconsistent-missing-override -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments    -fvisibility=hidden -fvisibility-inlines-hidden -O2 -DNDEBUG   -DNDEBUG
        C++ flags (Debug):           -isystem D:/android-ndk-r17c/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Winconsistent-missing-override -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments    -fvisibility=hidden -fvisibility-inlines-hidden -O0 -fno-limit-debug-info   -DDEBUG -D_DEBUG
        C Compiler:                  D:/android-ndk-r17c/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
        C flags (Release):           -isystem D:/android-ndk-r17c/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Winconsistent-missing-override -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments    -fvisibility=hidden -fvisibility-inlines-hidden -O2 -DNDEBUG   -DNDEBUG
        C flags (Debug):             -isystem D:/android-ndk-r17c/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Winconsistent-missing-override -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments    -fvisibility=hidden -fvisibility-inlines-hidden -O0 -fno-limit-debug-info   -DDEBUG -D_DEBUG
        Linker flags (Release):      -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot D:/android-ndk-r17c/platforms/android-21/arch-arm64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -LD:/android-ndk-r17c/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now    
        Linker flags (Debug):        -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot D:/android-ndk-r17c/platforms/android-21/arch-arm64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -LD:/android-ndk-r17c/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now    
        ccache:                      NO
        Precompiled headers:         NO
        Extra dependencies:          z dl m log
        3rdparty dependencies:       libcpufeatures ittnotify libprotobuf libjpeg-turbo libwebp libpng libtiff libjasper IlmImf quirc tegra_hal
    
      OpenCV modules:
        To be built:                 calib3d core dnn features2d flann highgui imgcodecs imgproc ml objdetect photo shape stitching superres ts video videoio videostab
        Disabled:                    world
        Disabled by dependency:      -
        Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java js python2 python3 viz
        Applications:                tests perf_tests
        Documentation:               NO
        Non-free algorithms:         NO
    
      Android NDK:                   D:/android-ndk-r17c (ver 17.2.4988734)
        Android ABI:                 arm64-v8a
        NDK toolchain:               aarch64-linux-android-clang
        STL type:                    c++_static
        Native API level:            21
      Android SDK:                   not used, projects are not built
    
      GUI: 
    
      Media I/O: 
        ZLib:                        z (ver 1.2.3)
        JPEG:                        build-libjpeg-turbo (ver 2.0.2-62)
        WEBP:                        build (ver encoder: 0x020e)
        PNG:                         build (ver 1.6.37)
        TIFF:                        build (ver 42 - 4.0.10)
        JPEG 2000:                   build (ver 1.900.1)
        OpenEXR:                     build (ver 2.3.0)
        HDR:                         YES
        SUNRASTER:                   YES
        PXM:                         YES
    
      Video I/O:
    
      Parallel framework:            pthreads
    
      Trace:                         YES (with Intel ITT)
    
      Other third-party libraries:
        Custom HAL:                  YES (carotene (ver 0.0.1))
        Protobuf:                    build (3.5.1)
    
      Python (for build):            D:/Anaconda3/envs/py35/python.exe
    
      Java:                          export all functions
        ant:                         NO
        Java wrappers:               NO
        Java tests:                  NO
    
      Install to:                    D:/Program Files (x86)/opencv-3.4.9/sources/build_android64/install
    -----------------------------------------------------------------
    
    Configuring done

     然后点击Generate

    执行mingw64.exe 进入D:Program Files (x86)opencv-3.4.9sourcesuild_android64目录下编译命令:

    mingw32-make

    安装:

    mingw32-make install

     安装完成后在install路径下文件夹结构:

    D:.
    ├─apk
    └─sdk
        ├─etc
        │  ├─haarcascades
        │  ├─lbpcascades
        │  └─licenses
        └─native
            ├─3rdparty
            │  └─libs
            │      └─arm64-v8a
            ├─jni
            │  ├─abi-arm64-v8a
            │  └─include
            │      ├─opencv
            │      └─opencv2
            │          ├─calib3d
            │          ├─core
            │          │  ├─cuda
            │          │  │  └─detail
            │          │  ├─detail
            │          │  ├─hal
            │          │  ├─opencl
            │          │  │  └─runtime
            │          │  │      └─autogenerated
            │          │  └─utils
            │          ├─dnn
            │          │  └─utils
            │          ├─features2d
            │          │  └─hal
            │          ├─flann
            │          ├─highgui
            │          ├─imgcodecs
            │          ├─imgproc
            │          │  ├─detail
            │          │  └─hal
            │          ├─ml
            │          ├─objdetect
            │          ├─photo
            │          ├─shape
            │          ├─stitching
            │          │  └─detail
            │          ├─superres
            │          ├─video
            │          ├─videoio
            │          └─videostab
            └─staticlibs
                └─arm64-v8a
    View Code

    参考博客:

    https://blog.csdn.net/qq_19313495/article/details/89709405

    https://www.pianshen.com/article/2093368804/

  • 相关阅读:
    Win10创意者更新秋季版激活秘籍
    将刷了Android的Lumia恢复为WP系统
    给Lumia 520/521/525/526/720刷Android系统
    DNS解析
    遍历对象目录
    PE注入
    利用NtCreateThreadEx注入
    利用CreateRemoteThread注入
    APC注入
    SetWindowHookEx()注入
  • 原文地址:https://www.cnblogs.com/juluwangshier/p/12609351.html
Copyright © 2020-2023  润新知