Android.mk-包括OpenCV目录,用于使用NDK进行本机C ++编译

用户名

我正在使用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

现在,我正在尝试制作一个“ 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)

在bar.cpp中,我有:

#include <opencv2/core/core.hpp>

仅用于检查编译器是否可以找到源。当我尝试使用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

我尝试使用LOCAL_STATIC_LIBRARIES和LOCAL_SHARED_LIBRARIES,但没有成功。有任何想法吗?


PS:

重要的是要说我遵循此示例https://gist.github.com/gnuanu/252fd406f48f7da2c1c7使用NDK(不包括任何OpenCV标头)编译了一个简单的Hello world

Android.mk上有一篇文章:如何包含ffmpeg和Opencv,但是它没有答案,我无法解决这些问题...

ash

首先,下载适用于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)

很酷的是,OpenCV提供了OpenCV.mk makefile,而您无需执行任何操作;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Android.mk编译Cmake文件?

来自分类Dev

如何使用Android.mk编译Cmake文件?

来自分类Dev

使用不同于Application.mk中定义的STL编译android-ndk模块

来自分类Dev

如何以纯Android Studio方式编译我的C ++库(无需自行指定任何.mk文件)

来自分类Dev

如何从反编译的 APK 中获取 android.mk 文件?

来自分类Dev

使用 Android.mk 命令替换

来自分类Dev

jni / Android.mk:8:curlLib / packages / Android / Android.mk:无此类文件或目录

来自分类Dev

如何在我的Android.mk中使用Android tesseract Android.mk文件?

来自分类Dev

如何在我的Android.mk中使用Android tesseract Android.mk文件?

来自分类Dev

如何将Android.mk编译配置为默认情况下仅导出用于调试版本的所有符号?

来自分类Dev

Android NDK中的新手:Android.mk中的定义

来自分类Dev

Android NDK Makefile,Android.mk和OCaml的常规链接

来自分类Dev

Android NDK中的新手:Android.mk中的定义

来自分类Dev

如何在Android.mk中使用通配符进行过滤

来自分类Dev

Android Studio NDK:使用ndk-build进行编译,并通过Gradle Experiment获得本机支持

来自分类Dev

Android Makefiles(.mk)文档

来自分类Dev

在android.mk文件中构建ndk时出现错误

来自分类Dev

使用Android NDK编译libpcap

来自分类Dev

在OS X上使用GYP生成Android NDK的Makefile(或Android.mk)

来自分类Dev

在OS X上使用GYP生成Android NDK的Makefile(或Android.mk)

来自分类Dev

Android NDK和Gradle:每种构建类型都不同的Android.mk

来自分类Dev

使用NDK编译适用于Android的OpenALPR

来自分类Dev

使用NDK编译适用于Android的OpenALPR

来自分类Dev

将Tesseract和Opencv添加到Android.mk(Android Studio)

来自分类Dev

如何在Android Studio中使用我自己的Android.mk文件

来自分类Dev

在Android中使用NDK编译回声消除

来自分类Dev

在Android中使用NDK编译回声消除

来自分类Dev

如何在Android NDK Application.mk中定位多个平台

来自分类Dev

Gradle NDK在生成的Android.mk中指定“ include”指令

Related 相关文章

  1. 1

    如何使用Android.mk编译Cmake文件?

  2. 2

    如何使用Android.mk编译Cmake文件?

  3. 3

    使用不同于Application.mk中定义的STL编译android-ndk模块

  4. 4

    如何以纯Android Studio方式编译我的C ++库(无需自行指定任何.mk文件)

  5. 5

    如何从反编译的 APK 中获取 android.mk 文件?

  6. 6

    使用 Android.mk 命令替换

  7. 7

    jni / Android.mk:8:curlLib / packages / Android / Android.mk:无此类文件或目录

  8. 8

    如何在我的Android.mk中使用Android tesseract Android.mk文件?

  9. 9

    如何在我的Android.mk中使用Android tesseract Android.mk文件?

  10. 10

    如何将Android.mk编译配置为默认情况下仅导出用于调试版本的所有符号?

  11. 11

    Android NDK中的新手:Android.mk中的定义

  12. 12

    Android NDK Makefile,Android.mk和OCaml的常规链接

  13. 13

    Android NDK中的新手:Android.mk中的定义

  14. 14

    如何在Android.mk中使用通配符进行过滤

  15. 15

    Android Studio NDK:使用ndk-build进行编译,并通过Gradle Experiment获得本机支持

  16. 16

    Android Makefiles(.mk)文档

  17. 17

    在android.mk文件中构建ndk时出现错误

  18. 18

    使用Android NDK编译libpcap

  19. 19

    在OS X上使用GYP生成Android NDK的Makefile(或Android.mk)

  20. 20

    在OS X上使用GYP生成Android NDK的Makefile(或Android.mk)

  21. 21

    Android NDK和Gradle:每种构建类型都不同的Android.mk

  22. 22

    使用NDK编译适用于Android的OpenALPR

  23. 23

    使用NDK编译适用于Android的OpenALPR

  24. 24

    将Tesseract和Opencv添加到Android.mk(Android Studio)

  25. 25

    如何在Android Studio中使用我自己的Android.mk文件

  26. 26

    在Android中使用NDK编译回声消除

  27. 27

    在Android中使用NDK编译回声消除

  28. 28

    如何在Android NDK Application.mk中定位多个平台

  29. 29

    Gradle NDK在生成的Android.mk中指定“ include”指令

热门标签

归档