【问题标题】:Error in creating .SO file using Cygwin使用 Cygwin 创建 .SO 文件时出错
【发布时间】:2012-09-25 09:26:02
【问题描述】:

我正在尝试使用 Cygwin 为我的 Android ndk 应用程序创建 .so 文件。但是 Cygwin 终端显示以下错误。

$ /cygdrive/c/native_work/android-ndk-r8b/ndk-build
Cygwin         : Generating dependency file converter script
Compile++ thumb  : main <= main.cpp
In file included from jni/NotePaperDetector.hpp:4:0,
             from jni/main.cpp:1:
jni/NoteLocation.hpp:4:30: fatal error: opencv2/opencv.hpp: No such file or directory
compilation terminated.
/cygdrive/c/native_work/android-ndk-r8b/build/core/build-binary.mk:255: recipe for         target `obj/local/armeabi/objs/main  /main.o' failed
make: *** [obj/local/armeabi/objs/main/main.o] Error 1

我的 jni 文件夹中有以下文件 -

NotePaperDetector.hpp 
NotePaperDetector.cpp 
NoteDescription.hpp 
NoteDescription.cpp 
NoteLocation.hpp 
NoteLocation.cpp 
ImageUtils.hpp
ImageUtils.cpp
MarkerCandidate.hpp
MarkerCandidate.cpp
main.cpp

Android.mk 文件是 -

  LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Here we give our module name and source file(s)
LOCAL_MODULE    := main
LOCAL_SRC_FILES := main.cpp

include $(BUILD_SHARED_LIBRARY)

【问题讨论】:

  • LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # 这里我们给出我们的模块名称和源文件 LOCAL_MODULE := main LOCAL_SRC_FILES := main.cpp include $(BUILD_SHARED_LIBRARY )

标签: android c++ c opencv android-ndk


【解决方案1】:

系统找不到 OpenCV 安装路径。您需要将LOCAL_C_INCLUDES 变量添加到指向OpenCV 文件夹的Android.mk 中,即:

LOCAL_PATH := $(call my-dir)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../opencv

【讨论】:

  • 注意LOCAL_C_INCLUDES列出了相对于make当前目录的目录,通常是Android项目目录,带有ApplicationManifest.mk文件,而LOCAL_SRC_FILES 列出了相对于LOCAL_PATH文件,通常命名为jni。您还可以在LOCAL_C_INCLUDES 中使用绝对路径,例如/cygdrive/c/downloads/opencv
  • 如果您在 Windows 上的 Cygwin-less 环境中开发,则不能使用 /cygdrive/。
  • 你是对的,幸运的是,NDK-r8b 可以在没有 Cygwin 的情况下使用。我相信无论有没有 Cygwin,LOCAL_C_INCLUDES += c:/downloads/opencv 都会起作用。但是这个问题明确谈到了 Cygwin 环境,这就是我以这种方式格式化路径的原因。
  • 当然,但是有一种可移植的方式使用带有许多“..”的相对路径
  • 实际上我必须在我的应用程序中使用 Open CV 和一些本机代码来通过相机进行图像识别。您能否建议我如何添加该库并创建 make 文件。
猜你喜欢
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 2016-10-28
相关资源
最近更新 更多