ios 编译openssl支持arm64
来源:互联网 发布:毕业论文公司数据作假 编辑:程序博客网 时间:2024/05/29 19:05
原文链接:http://blog.csdn.net/djl4104804/article/details/39928509
以上都是题外话,现在来看看如何编译支持arm64的openssl吧。我是在mac os 10.9.3,xcode5.1.1下进行编译的。
先下载openssl的源文件
http://www.openssl.org/source/
网页上红色标明的包为最新的版本。
在openssl-1.0.1h目录下创建4个文件夹,分别为arm64,armv7,armv7s,i386。它们分别用于存放指定平台的库文件。
****编译i386平台
打开/openssl-1.0.1h/crypto/ui/ui_openssl.c进行修改,将
static volatile sig_atomic_t intr_signal;
修改为
static volatile int intr_signal;
打开终端,进入到openssl-1.0.1h目录,输入命令
./configure BSD-generic32 --openssldir=/Users/Kyo/Desktop/openssl-1.0.1h/i386
(/Users/Kyo/Desktop/openssl-1.0.1h/i386为上面创建的i386文件夹路径)
命令完成后,在openssl-1.0.1h目录下会生成很多文件,找到其中的makefile文件并打开,
编辑 makefile 文件,将CC= gcc
修改为
CC= gcc -arch i386
在下一行CFLAG = ......的最后增加
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk
在终端执行命令
make
再接着执行命令
make install
执行完成后,在i386文件夹下将会生成多个文件和文件夹,/lib目录下存放着编译成功的库文件libcrypto.a 和 libssl.a
****编译其它平台
接着我们需要编译其它平台的库文件,先在终端执行命令make clean 清空之前的配置和缓存(发现执行这个命令并不能完成清空,我的做法是,先保存上面生成的i386的库文件,执行make clean命令,然后删除整个openssl-1.0.1h,重新解压一个openssl-1.0.1h,然后再继续其它平台的库文件编译)
既然是新解压的openssl-1.0.1h,我们需要重新上面的几个步骤,修改ui_openssl.c,执行configure命令,修改makefile文件。
修改makefile跟i386中有所不同,
CC= gcc
修改为
CC= gcc -arch armv7
(其中armv7是指编译armv7平台下的库文件,如果改为arm64,就是编译arm64平台下的库文件)
在下一行CFLAG = ......的最后增加
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneSimulator7.1.sdk
(i386中的路径是iPhoneSimulator.platform,而其它平台都是iPhoneOS.platform)
在终端执行命令
make
再接着执行命令
make install
执行完成后,在armv7文件夹下将会生成多个文件和文件夹,/lib目录下存放着编译成功的库文件libcrypto.a 和 libssl.a
如此重复生成各个平台的库文件后,开始合并操作。
****制作“通用”静态库
执行终端命令合并 libcrypto.a 库(确保终端中的路径正确):
lipo -create /i386/lib/libcrypto.a /armv7/lib/libcrypto.a /armv7/lib/libcrypto.a /arm64/lib/libcrypto.a -output /libcrypto.a
执行终端命令合并 libssl.a 库(确保终端中的路径正确):
lipo -create /i386/lib/libssl.a /armv7/lib/libssl.a /armv7/lib/libssl.a /arm64/lib/libssl.a -output /libssl.a
至此,我们完成了openssl的编译。
在此感谢:
http://blog.csdn.net/kmyhy/article/details/6534067
http://dingran.iteye.com/blog/1743496
已经编译好的下载地址:
https://github.com/st3fan/ios-openssl
http://download.csdn.net/detail/shengyumojian/7616347
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- 编译ios平台的支持arm64和x86_64的通用openssl静态库
- 实战FFmpeg编译支持arm64
- luajit ios arm64 编译bytecode
- iOS开发 - 编译支持bitcode的openssl库
- libidn.a 如何编译iOS下支持arm64的.a库
- ios 32/64位 lame静态库libmp3lame.a 编译,支持arm64 armv7s x86_64 i386 armv7
- 让cocos2dx支持并通过arm64 编译
- iOS工程如何支持64-bit arm64
- iOS 静态库支持 iOS5 和 Arm64
- iOS支持arm64的支付宝SDK
- iOS OpenSSL 编译
- iOS 编译openssl
- iOS平台的arm64模式的openssl库
- BZOJ 1513 POI 2006 Tet-Tetris 3D 二维线段树
- 个人做Research的体会(转载自MITBBS)
- Android框架浅析之锁屏(Keyguard)机制原理
- Weblogic 12c ip 地址改变如何配置
- Linux系统网卡信息文件
- ios 编译openssl支持arm64
- WPS每日精选只能设置一周不弹出的解决方案,设置为不再显示
- Android最佳性能实践(一)——合理管理内存
- Android最佳性能实践(二)——分析内存的使用情况
- jquery 显示隐藏div方法show(),hide(),toggle(),slideDown()总结
- chrome 谷歌浏览器无法登录
- 认识与入门 Markdown
- MOQL—ElasticSearch转换器(Translator)
- ubuntu 安装Broadcom BCM43142 无线网卡驱动