jav*_*974 9

这是为android编译库的指南:

用于为Android设备编译OpenALPR的教程

[第0步]

  • 下载并部署android-ndk
  • 将android-ndk根文件夹的符号链接添加到/ opt

[步骤1]

[第2步]

[第3步]

  • 下载并安装Android CMake项目(https://code.google.com/p/android-cmake/)您最终应该使用工具链来生成Android项目.如果你必须选择使用哪个编译器,我推荐使用gcc4.6,因为我没有使用指向gcc4.8编译器的工具链来编译OpenALPR ...

  • 在/ opt中创建一个指向android-toolchain文件夹的符号链接(即:sudo ln -s PATH_TO_ANDROID_TOOLCHAIN/opt/android-toolchain).(Android-toolchain文件夹是在部署Android CMake项目期间生成的!)

[第4步]

  • 从github下载openalpr-master(https://github.com/openalpr/openalpr)
  • 在openalpr-master目录中创建一个"build"文件夹
  • 转到src目录并编辑CMakeLists.txt文件:

    • 替换此行:SET(OpenCV_DIR"$ {CMAKE_SOURCE_DIR} /../ libraries/opencv /")
    • with:SET(OpenCV_DIR"path_to_OpenCV4Android/sdk/native/jni")

    然后注释该部分以生成alprd(或只是删除它):

    在基于Unix的操作系统上编译alprd库

    IF(不是WIN32)ADD_EXECUTABLE(alprd daemon.cpp videobuffer.cpp守护进程/ beanstalk.c守护进程/ beanstalk.cc守护进程/ uuid.cpp)

    TARGET_LINK_LIBRARIES(alprd openalpr支持uuid curl log4cplus $ {OpenCV_LIBS} $ {Tesseract_LIBS})ENDIF()

  • 打开CMake

  • 将源代码指向openalpr-master/src目录
  • 将Build路径指向openalpr-master/build目录
  • 按"配置"按钮
  • 选择"Unix Makefiles"(默认)并选择"指定工具链进行交叉编译",然后单击"下一步"
  • 指定要使用的工具链文件:如果您完成了步骤3,它应该位于$ ANDROID_CMAKE/toolchain/android.toolchain.cmake下(确保将$ ANDROID_CMAKE替换为其对应的绝对路径)
  • 点击完成

应该没有任何错误,但有些警告......没关系

  • 按Generate

[第5步]

  • 转到构建目录并编辑此文件:misc_utilities/CMakeFiles/benchmark.dir/link.txt:删除-lpthread选项(应该只有一行这样).保存并退出.
  • 打开文件资源管理器并转到path_to_tess-two/tess-two/jni/com_googlecode_tesseract_android/src
  • 现在搜索每个头文件(按搜索按钮并输入".h")
  • 将每个头文件复制并粘贴到openalpr-master/src/openalpr/tesseract(您应该先创建此目录)
  • 在openalpr-master的根路径中创建这些目录"libraries/tesseract-ocr/api/.libs"(mkdir -p libraries/tesseract-ocr/api/.libs)
  • 将path_to_tess-two/tess-two/libs/armeabi-v7a/libtess.so复制并粘贴到openalpr-master/libraries/tesseract-ocr/api/.libs/libtesseract.so(请务必将其从libtess.so重命名为libtesseract.so!)
  • 打开终端并转到build文件夹(openalpr-master/build)
  • 做吧"

一切都应该顺利编译.您可以在openalpr-master/src/libs/armeabi-v7a中找到alpr库

这就是全部,让我知道你的成功和失败,我会尽力帮助你