在Android下编译openssl静态库(平台:Windows)

在Android下编译openssl静态库(平台:Windows),第1张

概述原文链接:http://www.cnblogs.comangjianke/archive/2011/09/27/2193324.html1.在系统上安装AndroidNDK1)什么是NDK?NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是 原文链接:http://www.cnblogs.com/tangjianke/archive/2011/09/27/2193324.html

1. 在系统上安装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,在d出的命令行窗口输入:

      $ 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)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存