在Android下编译openssl静态库(平台:Windows)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Android下编译openssl静态库(平台:Windows),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3252字,纯文字阅读大概需要5分钟。
内容图文
原文链接:http://www.cnblogs.com/tangjianke/archive/2011/09/27/2193324.html1. 在系统上安装Android NDK
1) 什么是NDK?
NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和 java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK 集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。比较简单的说,NDK是一套交叉编译工具,它可以帮你把你用C或C++书写的代码,编译为.so(类似与win下的.dll)格式的文件,使你可以在你的Android程序当中用Java语言(JNI)调用这些代码.
2) 下载安装Android NDK
a.到http://developer.android.com/sdk/ndk/index.html下载最新版的WIndows版的NDK.
b.然后解压放置在任何地方都可以,目录最好不要有空格间隔的,但是我违反了,呵呵,我放在了“D:\Program Files\Android\”下面。
c.由于NDK编译代码时需要用到make和gcc,所以必须先搭建一个Linux的环境,cygwin是一个在Windows平台上运行的unix模拟环境,通过它我们可以再不用安装Linux的情况下使用NDK来编译C/C++代码了。
2.下载安装Cygwin
1) 到http://www.cygwin.com下载setup.exe,安装过程我就不赘述了,很傻瓜式的,是在线下载安装的,不过它会提示你保存安装包得地址,在选择要下载的包得时候,我这里列出需要安装的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc、g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make等包。
注意:安装目录最好不要有空格间隔的目录名,比如Program files. 我安装的目录为D:\Cygwin。
2) 测试一下是否安装成功
运行cygwin,在弹出的命令行窗口输入:
$ cygcheck -c cygwin
会打印出当前cygwin的版本和运行状态,如果status的话,则cygwin运行正常。
然后依次输入
$ gcc --version
$ g++ --version
$ gdb --version
进行测试,如果打印出来版本信息,就说明cygwin安装成功了,并且您选的包都安装正常。
那么我们可以进行下一步了。
3. 配置NDK环境变量
1) 到安装目录D:\Cygwin,这个目录就是根目录,然后打开\home\<user name>.bash_profile,我的用户名是jianke.tang ,一下的user name都用jianke.tang代替,
D:\Cygwin\home\jianke.tang\.bash_profile
2) 打开.bash_profile文件,添加
NDK_PATH=/cygdrive/D/Progra~1/Android/android-ndk-r6b
export NDK_PATH
注:NDK_PATH是我自己取的名字,NDK_PATH=/cygdrive/<your volume>/<android ndk dir>, 我的androd ndk的目录为"D:\Program Files\Android\android-sdk",
3) 打开cygwin
$ cd $NDK_PATH
如果提示黄色的字体“/cygdrive/D/Progra~1/Android/android-ndk-r6b”那么恭喜,环境变量设置成功了
4. 用NDK编译一个简单的程序
1)为了保证程序没有问题,我们用自带的例子编译一个简单的程序吧
$ cd $NDK_PATH/samples/hello-jni
$ $NDK_PATH/ndk-build
执行过程如下所示
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Compile thumb : hello-jni <= hello-jni.c
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => libs/armeabi/libhello-jni.so
如上述代码,它会生成一个libs目录,把编译生成的libhello-jni.so放在里面。
5.编译openSSL
1) 下载guardianproject版的openssl
下载地址:https://github.com/guardianproject/openssl-android
需要把整个工程下载下来
然后解压,我解压并改名成了:project_openssl,位置D:\project_openssl
然后打开Cygwin,
$ cd D:\project_openssl
$ $NDK_PATH/ndk-build
如果没有出现错误,恭喜你,编译成功了
6. 鄙人开了个网点,往多加支持,谢谢:gezikongjian.taobao.com(格子空间)
转载于:https://www.cnblogs.com/tangjianke/archive/2011/09/27/2193324.html
内容总结
以上是互联网集市为您收集整理的在Android下编译openssl静态库(平台:Windows)全部内容,希望文章能够帮你解决在Android下编译openssl静态库(平台:Windows)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。