ubuntu16.04编译opencv for Android
来源:互联网 发布:淘宝轰炸机 编辑:程序博客网 时间:2024/05/16 00:45
安装cmake
参考这篇博客ubuntu安装CMake的几种方式中的软链接Android Sdk中的CMake
下载opencv源码
直接在github clone最新源码
https://github.com/opencv/opencv/tree/master
或者在官网下载指定版本的源码
http://opencv.org/releases.html
编译opencv源码
进入源码目录新建一个opencvAndroid.sh脚本文件,内容如下
#!/bin/shrm -rf android_buildmkdir android_buildcd android_buildcmake -DANDROID_NDK=/home/gavinandre/Android/Sdk/ndk-bundle -DANDROID_STL=c++_shared -DCMAKE_TOOLCHAIN_FILE=/home/gavinandre/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DCMAKE_SYSTEM_VERSION=21 -DCMAKE_ANDROID_ARCH_ABI="armeabi-v7a" -DCMAKE_ANDROID_ARM_NEON=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_ANDROID_STL_TYPE="c++_shared" -DBUILD_opencv_world=ON -DBUILD_ZLIB=ON $@ ..cmake --build . --config Release
-DXXXXXX是指定Android交叉编译工具链中的一些参数
需要注意两点:
1.建议指定DANDROID_STL和DCMAKE_ANDROID_STL_TYPE为c++_shared,因为当使用c++11和gnustl_shared来编译时,NDK缺少一些函数,参考:https://stackoverflow.com/questions/22922961/c11-cmath-functions-not-in-std-namespace-for-android-ndk-w-gcc-4-8-or-clang-3
2.指定CMAKE_BUILD_TYPE和config时为Release,这样会开启O3优化,在使用opencv的一些函数时会大幅度提升效率
然后运行该脚本
./opencvAndroid.sh
之后等待编译完成即可
编译完成后可以在android_build目录下找到编译完的静态库文件
opencv库在:android_build/lib/下
第三方库在:android_build/3rdparty/lib/下
出现如下错误的话
/usr/include/features.h:391:10: fatal error: 'gnu/stubs.h' file not found
说明可能是64位系统缺少32位依赖库,使用如下命令安装
sudo apt install libc6-dev-i386
阅读全文
0 0
- ubuntu16.04编译opencv for Android
- ubuntu16.04编译dlib for Android
- ubuntu16.04编译boost for Android
- Ubuntu16.04下编译OpenCV
- opencv for android 编译
- 编译opencv for android
- 编译OpenCV for Android
- Ubuntu16.04安装opencv for python/c++
- Ubuntu16.04安装opencv for python/c++
- ubuntu16.04下编译安装OpenCV
- Ubuntu16.04交叉编译OpenCV并移植
- Ubuntu16.04 编译OpenCV 和 Tesseract-OCR
- 编译Python-(Opencv+Contrib)-Ubuntu16.04
- Opencv for linux android编译
- 编译得到OpenCv+Contrib SDK for android
- Ubuntu16.04LTS编译Android内核3.4
- Ubuntu16.04下编译Android 6.0 源码
- Ubuntu16.04编译vlc-android详细流程
- 对基于Servlet+JSP+JavaBean开发模式的用户登录注册的升级
- 欢迎使用CSDN-markdown编辑器
- 文本导出
- Java定位CPU使用高问题
- 新手学习Django的十条注意点
- ubuntu16.04编译opencv for Android
- 【怎样写代码】对象克隆 -- 原型模式(四):浅克隆与深克隆
- 排序方法总结
- Unity3D按ESC退出的脚本代码
- 系统调用的三种方式
- 这 30 类 CSS 选择器,你必须理解!
- C++ STL之vector常见用法
- [bzoj3211]花神游历各国 线段树
- Java开关语句-switch