链接器标志中的非系统库:-lopencv_java3
Non-system libraries in linker flags: -lopencv_java3
我想在 android.mk
文件中包含 OpenCV3
库。所以文件看起来像这样:
android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_EXPORT_C_INCLUDES := D:\path to\OpenCV-android-sdk\sdk\native\jni\include
include D:\path to\OpenCV-android-sdk\sdk\native\jni\OpenCV.mk
LOCAL_MODULE := MyLib
LOCAL_SRC_FILES := file1.cpp
LOCAL_SRC_FILES += file2.cpp
OPENGLES_LIB := -lGLESv1_CM
OPENGLES_DEF := -DUSE_OPENGL_ES_1_1
LOCAL_LDLIBS += -lGLESv1_CM -ldl -llog
include $(BUILD_SHARED_LIBRARY)
但是当我构建项目时,我收到了这条警告消息:
Android NDK: WARNING:jni/Android.mk:MyLib: non-system libraries in linker flags: -lopencv_java3
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
我该如何解决这个问题?
Try using LOCAL_STATIC_LIBRARIES or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the current module
根据您的版本 (static/dylibs),将您的 LOCAL_LDLIBS
更改为 LOCAL_STATIC_LIBRARIES
或 LOCAL_SHARED_LIBRARIES
Android.mk 是对 Android makefile
中变量的很好引用
如果您仅在 C++ 代码中使用 OpenCV,则不需要此 libopencv_java.so。为了表明这一点,添加
OPENCV_LIB_TYPE=STATIC
在包括 OpenCV.mk.
之前
可以在 answers.opencv.org 找到一些解释。
我想在 android.mk
文件中包含 OpenCV3
库。所以文件看起来像这样:
android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_EXPORT_C_INCLUDES := D:\path to\OpenCV-android-sdk\sdk\native\jni\include
include D:\path to\OpenCV-android-sdk\sdk\native\jni\OpenCV.mk
LOCAL_MODULE := MyLib
LOCAL_SRC_FILES := file1.cpp
LOCAL_SRC_FILES += file2.cpp
OPENGLES_LIB := -lGLESv1_CM
OPENGLES_DEF := -DUSE_OPENGL_ES_1_1
LOCAL_LDLIBS += -lGLESv1_CM -ldl -llog
include $(BUILD_SHARED_LIBRARY)
但是当我构建项目时,我收到了这条警告消息:
Android NDK: WARNING:jni/Android.mk:MyLib: non-system libraries in linker flags: -lopencv_java3
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
我该如何解决这个问题?
Try using LOCAL_STATIC_LIBRARIES or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the current module
根据您的版本 (static/dylibs),将您的 LOCAL_LDLIBS
更改为 LOCAL_STATIC_LIBRARIES
或 LOCAL_SHARED_LIBRARIES
Android.mk 是对 Android makefile
中变量的很好引用如果您仅在 C++ 代码中使用 OpenCV,则不需要此 libopencv_java.so。为了表明这一点,添加
OPENCV_LIB_TYPE=STATIC
在包括 OpenCV.mk.
之前可以在 answers.opencv.org 找到一些解释。