0

OpenCV(2.4.3.2)をプロジェクトに静的にリンクしたいと思います。今のところ私のAndroid.mkはこのように見えます

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on

include /Users/jamiematthews/Documents/Android-Projects/OpenCV-2.4.3-android-sdk/sdk/native/jni/OpenCV.mk

LOCAL_MODULE    := jni_part
LOCAL_SRC_FILES := jni_part.cpp
LOCAL_LDLIBS +=  -llog -ldl
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog 
include $(BUILD_SHARED_LIBRARY)

エラーをスローします:

Android NDK: ERROR:/Users/jamiematthews/Documents/workspace/AuthentiGuard/jni/Android.mk:on: LOCAL_SRC_FILES points to a missing file    
/Users/jamiematthews/Documents/android-ndk-r8d/build/core/prebuilt-library.mk:43: *** Android NDK: Aborting    .  Stop.
Android NDK: Check that /Users/jamiematthews/Documents/Android-Projects/OpenCV-2.4.3-android-sdk/sdk/native/jni/../libs/mips/libon.so exists  or that its path is correct

「LOCAL_SRC_FILESが欠落しているファイルを指している」とはどういう意味か知っている人はいますか?

PS行を削除した場合

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on

正常にコンパイルされますが、静的にリンクできません

4

2 に答える 2

1

解決策を見つけました。信じられないかもしれませんが、Android.mkではなくApplication.mkの問題でした。設定しました

APP_ABI := all

以前は、これが静的にビルドプロセスに影響を与える可能性があるとは考えられていませんでした。私はそれをに変更することになりました

APP_ABI := armeabi-v7a

そして今、すべてが正常に動作します。OPENCV_CAMERA_MODULES:= onは必要ないことに注意してください。これは、私がいないJNIからカメラを呼び出している場合のみだと思います。

于 2013-02-13T20:47:53.223 に答える
0

LOCAL_SRC_FILESは、ネイティブコードが存在するファイルを示します。ネイティブのOpenCVコードを使用する場合は、ここにcppファイルの名前を追加する必要があります。ネイティブパーツがない場合は、OpenCVライブラリをプロジェクトのlibsフォルダーに追加する必要があります。(静的初期化の場合)。詳しくはこちらのページをご確認ください。

于 2013-02-13T18:07:51.727 に答える