编译支持bitcode的openssl库注意点

iOS跨平台编译无非是要配置好编译器,SDK路径和最小支持的iOS版本,
还有开源项目本身要设置的一些选项,编译完了之后调用lipo合成universal的库;
所谓自动编译,无非是在shell脚本里面调用这些里面用到一些命令,这就是基本原理。

说几个注意点:
1>. xcrun -sdk iphoneos –show-sdk-path / xcrun -sdk iphonesimulator –show-sdk-path用来查找真机和模拟器SDK的路径;

2>. xcrun –find gcc / xcrun –find clang用来查找编译器的路径;

3>. -miphoneos-version-min选项指定最小支持的iOS版本;

4>. -fembed-bitcode选项开启bitcode的支持,去掉就不支持bitcode;

5>. 编译curl,暂时只支持gcc编译,虽然内部是调用clang,
我试了用clang编译,会报错:error “We can’t compile without socket() support!”,若有人知道怎么解决,请告诉我;

6>. 编译完各平台的curl,直接使用同一份头文件,XCode会报错,说curlbuild.h里面的”[CurlchkszEQ(long, CURL_SIZEOF_LONG)]”有问题,
这是因为32位和64位的curlbuild.h内容不一样,我们可以把32位和64位的curlbuild.h放在同一个目录下,重命名为curlbuild-32.h和curlbuild-64.h,
然后机智地建一个curlbuild.h,里面通过”LP64“宏来确定是否是64位的平台来包含不同的头文件;

7>. 编译openssl,需要导出CROSS_TOP和CROSS_SDK两个变量,这两个变量合起来就是SDK的绝对路径;

8>.编译x86_64平台的openssl,Configure时需要指定no-asm选项,否则会报错;

9>. openssl-build.sh可能只支持较新版本的openssl,因为新的版本内建支持iOS,要支持老版的,请自己修改脚本。

关于bit code的介绍:
http://dzpqzb.com/2015/11/19/bitcode-open.html

其它地址:http://blog.csdn.net/skylin19840101/article/details/50205249

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值