2 c++ opencv android-ndk android.mk
我正在使用NDK将C++/OpenCV代码导入到Android应用程序中.首先,我不得不说我没有编程方面的研究,我只是一个业余开发人员,因此有很多我无法管理的东西(特别是编码方面的东西).
我使用QtCreator作为我的C++/OpenCV代码,我在Project.pro中编写了这一行:
INCLUDEPATH += path/to/OpenCV/main/dir #OpenCV-3.1.0
LIBS += -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试制作一个"Hello World!" 应用程序只是为了确保我可以使用我的C++源代码编译.
根据https://developer.android.com/ndk/guides/android_mk.html,我写了这个简单的Android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myModule
LOCAL_CFLAGS += -I /path/to/OpenCV/main/dir
LOCAL_LDLIBS := -lopencv_core
LOCAL_SRC_FILES := bar.cpp
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
在bar.cpp中,我有:
#include <opencv2/core/core.hpp>
Run Code Online (Sandbox Code Playgroud)
只是为了检查编译器是否可以找到源.当我尝试使用ndk-build构建我的C++/OpenCV本机代码时,我得到:
non-system libraries in linker flags: -lopencv_core
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the current module
Run Code Online (Sandbox Code Playgroud)
我尝试使用LOCAL_STATIC_LIBRARIES和LOCAL_SHARED_LIBRARIES,但没有成功.有任何想法吗?
PS:
重要的是,我按照这个例子https://gist.github.com/gnuanu/252fd406f48f7da2c1c7编译了一个使用NDK的简单Hello世界(wthout包括任何OpenCV头).
这里有一篇文章Android.mk:如何包含ffmpeg和Opencv,但它没有答案,我无法用信息解决...
首先,下载适用于Android的OpenCV.如果您只使用OpenCV nativ,则必须在Android.mk文件中设置以下内容:
LOCAL_PATH := $(call my-dir)
CVROOT := path_to_opencv/OpenCV-android-sdk/sdk/native/jni
include $(CLEAR_VARS)
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC
include $(CVROOT)/OpenCV.mk
LOCAL_MODULE += myModule
LOCAL_C_INCLUDES += path_to_your_code/bar.h
LOCAL_SRC_FILES += path_to_your_code/bar.cpp
LOCAL_CFLAGS += -std=c++11 -frtti -fexceptions -fopenmp -w
LOCAL_LDLIBS += -llog -L$(SYSROOT)/usr/lib
LOCAL_LDFLAGS += -fopenmp
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
很酷的是,OpenCV提供了OpenCV.mk makefile,你不能做任何事情;)
| 归档时间: |
|
| 查看次数: |
4821 次 |
| 最近记录: |