关闭

【OpenCV3.3】搭建VS2017+Android开发环境

标签: opencvandroidvisual studio
15305人阅读 评论(0) 收藏 举报
分类:

        在上一篇【OpenCV3.3】编译源码并搭建VS2017+Windows开发环境中我们搭建了OpenCV的Windows开发环境,现在我们来搭建Android的C++开发环境。本文假设读者的VS2017已经能够正常编译出Android程序,使用的NDK版本是r13b (VS2017 15.3内建支持的NDK版本)。

        编译Android版本OpenCV涉及到交叉编译,相比Windows复杂得多,为此官方提供了编译好的静态库供开发者使用,首先我们来简单看看OpenCV SDK如何使用:

  1. 下载SDK包: opencv-3.3.0-android-sdk.zip,并解压
  2. 我们首先关注路径\opencv-3.3.0-android-sdk.zip\OpenCV-android-sdk\sdk\native,可以看到该目录下的libs3rdparty\libs子目录里存放着各CPU架构的静态库.a;
    同时我们看到\opencv-3.3.0-android-sdk.zip\OpenCV-android-sdk\sdk\native\jni\include目录里存放着所需要的头文件。
  3. 上面的几个目录分别就是Library和Include需要配置的目录,在我们的Android项目属性里配置好相应路径就可以了:
        Include目录: \opencv-3.3.0-android-sdk.zip\OpenCV-android-sdk\sdk\native\jni\include
        Library目录:  \opencv-3.3.0-android-sdk.zip\OpenCV-android-sdk\sdk\native\libs\$(TargetArchAbi)
                            
    \opencv-3.3.0-android-sdk.zip\OpenCV-android-sdk\sdk\native\3rdparty\libs\$(TargetArchAbi)
  4. 打开C++异常(-fexceptions)和运行时类型信息(-frtti),分别在C++属性设置的`代码生成`和`语言`里;否则\opencv2\flann\any.h会出现编译错误(个人表示不喜欢any_cast这种依赖于运行时类型信息和异常的机制)。
  5. Clang/GCC似乎不支持像MSVC那样直接在源码里指定链接库(实际上编译和链接是两个不相关的过程,在编译阶段影响链接阶段也似乎不是很合理),所以在迁移代码的时候需要在Linker->Library Dependencies里添加依赖库,顺便提下这里和Windows添加依赖库有一些不同,*nix系统都是如此,指定依赖库时不需要前缀lib也不需要后缀.a或.so,比如你添加liblibpng.alibopencv_dnn.a这两个依赖库,只需要输入libpng;opencv_dnn即可,此外.so也是可以被链接的,链接.so就和windows平台使用.dll一样,最后运行时动态链接。

        到此为之,不出意外的话我们已经能够在Android上跑OpenCV的程序了,很简单不是?但是如果我们要自行编译OpenCV,比如Github上有新的commits想试试,或者想对源码进行微调等等,就不是那么容易了。这里首先因为CMake尚不支持生成VS上的Android项目*,其次OpenCV项目太庞大不适合人工生成,所以先暂且放弃使用VS编译Android版本OpenCV的想法,等哪天实现了再来更新;而通过命令行进行Build的话,官方已经有文档了,写的也比我好,就不重复了,参考http://code.opencv.org/projects/opencv/wiki/Building_OpenCV4Android_from_trunk

        *ps: 严格来讲是CMake GUI,笔者尝试使用cmake和VS迁移一个项目到Android,指定的toolchain file是从https://github.com/taka-no-me/android-cmake获取的,不过上面的版本几年不维护了,配合高版本cmake使用会出一些问题,改到最后发现虽然目标是生成Android项目,但是CMake却依旧去检测MSVC而不是arm-linux-androideabi工具链,方向都错了不是,果断弃坑,改换手工生成VS的Android项目,虽然一些config.h项需要手动改,但还算完美。

0
0
查看评论

vs2017打包安卓项目

第 1 部分 - 做好应用程序发布准备 应用程序经编码和测试后,必须准备一个包进行分发。 准备此包的第一个任务是生成供发布的应用程序,其中主要涉及到设置应用程序的一些属性。 有关较早版本的 Xamarin Android(版本 7.0 之前),请参阅 含 Xamarin Andro...
  • xsfqh
  • xsfqh
  • 2017-08-09 10:53
  • 4236

(1)VS2017 Xamarin.Android 部署

1、先从网上下载VS2017 企业版 各个版本的下载地址:https://www.visualstudio.com/zh-hans/downloads/ 如果是学习,建议下载企业版(Visual Studio Enterprise 2017),激活码可在网上一搜就有。 【特别提醒1:目前VS...
  • qq331059279
  • qq331059279
  • 2017-10-20 17:12
  • 2154

2017年Android SDK下载安装及配置教程

首先声明: Unity版本5.6.3f1        最近试着在Unity中利用高通做AR开发时,发布项目文件需要发布到Android平台,遇到一些问题,看了网上的一些资料,踩了一些坑,现在总结出来,希望有相同的开发者遇到时可以规避。 &...
  • love4399
  • love4399
  • 2017-08-14 17:45
  • 39568

使用Visual Studio 2015调试Android平台Cocos2d-x游戏的C++代码

Visual Studio 2015正式版发布已经一月有余,新版本中对于移动开发的支持有许多值得称道的地方。 我这里简单介绍下如何使用VS 2015来调试Android C/C++代码。(ps:要求android设备的系统版本不低于4.2,并且不是64位系统。VS 2015暂不支持64位a...
  • emcodeLin
  • emcodeLin
  • 2015-08-24 20:22
  • 2769

VS2017 发布Android项目

VS2017与VS2012发布Xamarin项目时不同了。在VS2017中,项目编译好后,点“生成”->"存档",等生成完后,点击“分发”,即会要求产生签名文件,按提示完成即可得到安装包文件。
  • JeffCls
  • JeffCls
  • 2017-10-28 21:31
  • 778

Visual Studio 2017 第一个 android

Visual Studio 2017  发布已有一段时间,今天有时间,终于把 19.8G 离线版下载完毕, 开始VS开发android, 早期的版本,Xamarin 做得非常不好,用起来一个字"烦",所以一直无用过,现在vs2017版感觉做得好好,最少,安装完毕就可以使...
  • liangfang
  • liangfang
  • 2017-04-02 19:16
  • 7838

Android 使用OpenCV的三种方式(Android Studio)

原文链接:http://blog.csdn.net/sbsujjbcy/article/details/49520791 其实最早接触OpenCV是很久很久之前的事了,大概在2013年的5,6月份,当时还是个菜逼(虽然现在也是个菜逼),在那一段时间,学了一段时间的Android(并不算学,一个...
  • lcc_633
  • lcc_633
  • 2016-07-11 13:58
  • 746

OpenCV4Android释疑: 透析Android以JNI调OpenCV的三种方式(让OpenCVManager永不困扰)

前文曾详细探讨了关于OpenCV的使用,原本以为天下已太平。
  • yanzi1225627
  • yanzi1225627
  • 2014-06-01 01:18
  • 56106

如何用VS2017C++写hello world程序---从下载到新建项目

很多朋友刚接触编程,下载VS2017后不会写第一个程序,今天我也摸索了好久,终于搞清楚如何安装组件和编写第一个helloworld程序了。 第一步:下载Visual  Studio2017 登录https://www.visualstudio.com/,点击下载visual studi...
  • aaaluozi
  • aaaluozi
  • 2017-09-18 20:40
  • 8708

Xamarin AndroidVS2017开发环境搭建

  • 2017-07-10 15:55
  • 2.74MB
  • 下载
    联系作者
    通过QQ与我联系(全天候7*24小时基本不在线)
    最新评论
    免责声明
    如果转载的文章侵犯了您的版权,请务必告知,我将立刻删除;
    博客所有文章允许转载,原创类不要求注明出处,随意就好;
    如果是转载的文章,建议直接转载原始来源,因为原作者极可能有更新