【MAC】Ncnn 編譯so文件方案

【MAC】Ncnn 編譯so文件方案

1、下載ncnn github地址是:https://github.com/Tencent/ncnn

指定目錄:在終端或者git管理工具 輸入:
    git clone https://github.com/Tencent/ncnn.git

2、編譯Ncnn

2.1 Mac平臺 安裝cmake、wget(根據實際編譯需要)

    注:cmake終端安裝方式:brew search cmake
                    brew install cmake
        wget安裝方式如上過程。

2.2 進入 ncnn(cd ncnn)然後執行sudo ./build.sh

    注:在mac下會出異常(其他平臺win或Linux未親測)也許有些環境可以直接運行,目前使用的是oh-my-zsh 終端環境
    接着修改build.sh執行文件
    把文件頭 #!/usr/bin/bash,修改爲 #!/usr/bin/env bash

    然後再執行sudo ./build.sh
    如果出現 提示 export ANDROID_NDK=~/your/ndk/path
    配置自己的ndk路徑。安裝android studio的朋友可以直接打開AS然後在裏面找到ndk路徑

如果沒有其他異常提示則運行成功 如下圖:
【MAC】Ncnn 編譯so文件方案
有build-android-armv7文件夾,裏面包含了install/lib和include(稍後需要用到)

2.3 編譯so的的命令ndk-build

jni路徑見下圖
【MAC】Ncnn 編譯so文件方案
進入jni路徑下
然後在終端輸入:sudo ndk-build
正常情況下會有如下提示:

    Android NDK: android-9 is unsupported. Using minimum supported version android-14.    
    Android NDK: WARNING: APP_PLATFORM android-14 is higher than android:minSdkVersion 1 in /Users/lichong/Documents/android/github/ncnn/examples/squeezencnn/AndroidManifest.xml. NDK binaries will *not* be comptible with devices older than android-14. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md for more information.    
    Android NDK: ERROR:/Users/lichong/Documents/android/github/ncnn/examples/squeezencnn/jni/Android.mk:ncnn: LOCAL_SRC_FILES points to a missing file    
    Android NDK: Check that /home/nihui/dev/qqfacecnn/ncnn/build-android-armv7/install/lib/libncnn.a exists  or that its path is correct   
    /Users/lichong/Library/Android/sdk/ndk-bundle/build/core/prebuilt-library.mk:45: *** Android NDK: Aborting    .  Stop.

重要的是“LOCAL_SRC_FILES points to a missing file”
根據提示路徑可以找到Android.mk文件:其中有“LOCAL_SRC_FILES := $(NCNN_INSTALL_PATH)/lib/libncnn.a”
再追述“NCNN_INSTALL_PATH=/home/nihui/dev/qqfacecnn/ncnn/build-android-armv7/install”
這個路徑看上去很眼熟。哈哈哈!因爲這個就是工程的絕對路徑。修改ncnn前面的路徑“/home/nihui/dev/qqfacecnn/”爲~</your/path>即可

再次運行ndk-build
會有如下提示:
    Android NDK: android-9 is unsupported. Using minimum supported version android-14.    
Android NDK: WARNING: APP_PLATFORM android-14 is higher than android:minSdkVersion 1 in /Users/lichong/Documents/android/github/ncnn/examples/squeezencnn/AndroidManifest.xml. NDK binaries will *not* be comptible with devices older than android-14. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md for more information.    
[armeabi-v7a] Compile++ thumb: squeezencnn <= squeezencnn_jni.cpp
[armeabi-v7a] SharedLibrary  : libsqueezencnn.so
[armeabi-v7a] Install        : libsqueezencnn.so => libs/armeabi-v7a/libsqueezencnn.so

如出現以上提示。
恭喜你成功編譯出so文件!!!

聯繫我

QQ:492717776
Email:[email protected]

支付寶打賞:https://pan.baidu.com/s/1UMWjU1FHv7hYpdlcCQrJ3A

微信打賞:https://pan.baidu.com/s/1dSBXk3eFZu3mAMkw3xu9KQ

公衆號推薦:

【MAC】Ncnn 編譯so文件方案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章