前言
相信有过和硬件等产品打过交道的程序员都有所体会,本篇文章关于Cygwin编译C++文件.so文件----android开发环境调用编译好的.so文件,在这里记录一下开发的过程中遇到的坑,分享给大家,欢迎多多沟通(文章涉及的软件在参考文献中可以找到)!
流程
- 准备编译环境:Cygwin(version 2.738)、android-ndk(r5)、Android开发工具(ADT 64位)
- 编译.so文件:下载好的android-ndk放在cygwin根目录下,之后进入android-ndk/目录,把需要编译的C++文件放在/apps/目录下,这样使用make命令的时候就可以搜索到该文件,实现编译之后会在/out/apps/输出.so文件(如没有该目录,可以创建)。如下图所示:
收获(遇到的坑)
- make APP=需要编译的C++文件夹,其中的APP需要大写。
- 如果在64为下编译android,那么必须下载好64bit的JDK,否则ADT打开后会报错。
- C++输出日志到文件的方法(参考:基于LGPL开源项目 Log4cpp安装与使用(一))
(1).添加Log4cpp头文件
(2).include文件和lib包
(3).在函数中调用
最佳实践
1、
C++输出日志组件下载
参考文献
[1].
android离线包下载: 用SDK下载android的版本包很慢,还是在国内直接下载比较快,毕竟Google是国外的。
[2].
运行Eclipse出错:Failed to load the JNI shared library: 弄清楚了64位装ADT的问题
[3].
cygwin离线包下载:由于下载过程总很容易出现问题,所以推荐下载离线包,解决的由于网络不稳定的问题。
[4].
Cygwin完全下载指南(上)-正常下载篇:如果你的网络不错,也可以参考这篇文章开始Linux之旅。
[5].
编译.cpp文件到so文件的学习: