【问题标题】:ndk build with opencvndk 使用 opencv 构建
【发布时间】:2012-10-21 10:09:53
【问题描述】:

我正在构建一个使用 opencv 库的 cpp 文件。我包括 cv.h 和我的 Application.mk 得到了

LOCAL_LDLIBS := "C:\OpenCV2.1\lib\cxcore210.lib" "C:\OpenCV2.1\lib\highgui210.lib" "C:\OpenCV2.1\lib\cvaux210.lib"  "C:\taucs_full\lib\win32\libtaucs.lib"

但我不能调用任何函数,例如 cvSaveImage。我查看了 opencv 目录并尝试找到实现这些功能但找不到的 cpp 文件。 那我该怎么做呢?

【问题讨论】:

  • 尝试调用 cvSaveImage 的错误信息是什么?
  • 未定义引用错误,因为opencv lib提供了头文件和lib文件。你知道这个库吗?搜索但没有结果。
  • 您的 LOCAL_LDLIBS 列出了 OpenCV 库的 Windows 版本(我怎么知道?因为它们有 .lib 扩展名)。要构建您的 Android 原生库,您应该首先使用 NDK 及其 gcc 工具链构建适用于 Android 的 OpenCV。这将生成libxccore210.a 等文件。您将这些文件添加到LOCAL_LDLIBS。另请注意,此定义应放在 Android.mk 文件中,而不是 Application.mk!
  • @AlexCohn - 问题重新打开。

标签: c++ opencv android-ndk


【解决方案1】:

您的 LOCAL_LDLIBS 列出了 OpenCV 库的 Windows 版本(我怎么知道?因为它们有 .lib 扩展名)。要构建您的 Android 原生库,您应该首先使用 NDK 及其 gcc 工具链构建适用于 Android 的 OpenCV。这将产生libcxcore210.a等文件。您将这些文件添加到LOCAL_LDLIBS(注意lib.a是隐藏的):

LOCAL_LDLIBS += -Lc:/opencv2.1/libandroid -lcxcore210 -lhighgui210 -lcvaux210

还要注意,这个定义应该放在Android.mk 文件中,而不是Application.mk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多