首先,openssl支持ios编译,这是毫无疑问的
ios上的编译也无外乎configure make make install模式,但是有一些不同
比如
./Configure iphoneos-cross --openssldir="${cur_output}"
configure要用Configure命令,传递交叉参数iphoneos-cross, openssldir为安装目录
之后调用此句
sed -ie "s!^CFLAG=!CFLAG=-miphoneos-version-min=7.0 !" "Makefile"
在上一步生成的Makefile文件中修改CFLAG参数,加上-miphoneos-version-min=7.0指定目标最小版本,我实验的结果为如果不加这句,最后链接时候会出错,大概意思是我觉得您要编译在mac上跑的东东,但是现在我要连接的是为i386CPU准备的,我晕了之类的。
接下里是make
我们知道ios分为很多平台,而在ios上,可以把多个平台的文件用lipo打成一个包,那么怎么控制此次openssl编译的平台参数呢
export CROSS_TOP=${cur_cross_top}
export CROSS_SDK=${cur_cross_sdk}
export CC=${cur_cc}
注意上面三个可以变量,必须导出,Makefile文件中有引用这三个变量
CROSS_TOP变量类似
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
这样子
CROSS_SDK变量类似
iPhoneOS8.1.sdk
这样子
而CC变量大概为
/Applications/Xcode.app/Contents/Developer/usr/lib/gcc -arch armv7
这样子的
本次实验环境为MacOS10.10 xcode 6.1环境
时间: 2024-10-04 08:50:56