mac编译iOS版openssl
来源:互联网 发布:数控车床如何编程 编辑:程序博客网 时间:2024/05/17 06:27
一、openssl编译结构梳理:
编译openssl ,要先运行configure文件。与普通开源软件不同的是,openssl有多个makefile,makefile ,makefile.bak, makefile.org, makefile.shared。configure要根据平台拷贝对应的makefile。一般情况下,我们需要的是makefile.org。想所以修改openssl的makefile,直接修改已经存在的makefile是无效的,要修改我们需要的org文件。
二、编译时遇到的bug:
多次编译后,运行make install出现错误,提示连接多次。根据提示,我们在point.sh中,找到如下代码:
ln -s "$1" "$2"
在前面检查链接是否存在,如果存在先删除再链接即可。
其实,交叉编译时,doc文件是不需要的,在makefie.org的install选项中,删除doc就好了。
三、编译
脚本:
#!/bin/bash# This script builds the iOS and Mac openSSL libraries# Download openssl http://www.openssl.org/source/ and place the tarball next to this script# Credits:# https://github.com/st3fan/ios-openssl# https://github.com/x2on/OpenSSL-for-iPhone/blob/master/build-libssl.shset -eINSTALL_PATH="/tmp/openssl"usage (){echo "usage: $0 [minimum iOS SDK version (default 8.2)]"exit 127}if [ $1 -e "-h" ]; thenusagefiif [ -z $1 ]; thenSDK_VERSION="8.4"elseSDK_VERSION=$1fiOPENSSL_VERSION="openssl-1.0.2d"DEVELOPER=`xcode-select -print-path`buildMac1(){ echo buildMac -----}buildMac(){ARCH=$1echo "Building ${OPENSSL_VERSION} for ${ARCH}"TARGET="darwin-i386-cc"if [[ $ARCH == "x86_64" ]]; thenTARGET="darwin64-x86_64-cc"fipushd . > /dev/nullcd "${OPENSSL_VERSION}"./Configure ${TARGET} --openssldir="$INSTALL_PATH/${OPENSSL_VERSION}-${ARCH}"make make installmake clean popd > /dev/null}buildIOS1(){ echo build-ios-1-----}buildIOS(){ARCH=$1pushd . > /dev/nullcd "${OPENSSL_VERSION}" if [[ "${ARCH}" == "i386" || "${ARCH}" == "x86_64" ]]; thenPLATFORM="iPhoneSimulator"elsePLATFORM="iPhoneOS"sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"fi export $PLATFORMexport CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"export CROSS_SDK="${PLATFORM}${SDK_VERSION}.sdk"export BUILD_TOOLS="${DEVELOPER}"export CC="${BUILD_TOOLS}/usr/bin/gcc -arch ${ARCH}" echo "Building ${OPENSSL_VERSION} for ${PLATFORM} ${SDK_VERSION} ${ARCH}"if [[ "${ARCH}" == "x86_64" ]]; then echo "Configure darwin64-x86_64-cc"#./Configure darwin64-x86_64-cc --openssldir="$INSTALL_PATH/${OPENSSL_VERSION}-iOS-${ARCH}" else echo "Configure iphoneos-cross"#./Configure iphoneos-cross --openssldir="$INSTALL_PATH/${OPENSSL_VERSION}-iOS-${ARCH}" fi# add -isysroot to CC=sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=${SDK_VERSION} !" "Makefile"#make #make install make clean popd > /dev/null}echo "Cleaning up"rm -rf include/openssl/* lib/*mkdir -p lib/iOSmkdir -p lib/Macmkdir -p include/openssl/rm -rf "$INSTALL_PATH/${OPENSSL_VERSION}-*"rm -rf "$INSTALL_PATH/${OPENSSL_VERSION}-*.log"function download_unrar_openssl{ if [ ! -e ${OPENSSL_VERSION}.tar.gz ]; then echo "Downloading ${OPENSSL_VERSION}.tar.gz" curl -O https://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz else echo "cur version is exit, Using ${OPENSSL_VERSION}.tar.gz" fi echo "unrar ${OPENSSL_VERSION}.tar.gz" tar xfz "${OPENSSL_VERSION}.tar.gz"}#rm -rf "${OPENSSL_VERSION}"if [ ! -d ${OPENSSL_VERSION} ];then download_unrar_opensslfiecho "check and prepare openssl end"buildIOS "armv7"buildIOS "armv7s"buildIOS "arm64"buildIOS "x86_64"buildIOS "i386"echo "Building iOS libraries"lipo \ "$INSTALL_PATH/${OPENSSL_VERSION}-iOS-armv7/lib/libcrypto.a" \ "$INSTALL_PATH/${OPENSSL_VERSION}-iOS-armv7s/lib/libcrypto.a" \"$INSTALL_PATH/${OPENSSL_VERSION}-iOS-arm64/lib/libcrypto.a" \"$INSTALL_PATH/${OPENSSL_VERSION}-iOS-i386/lib/libcrypto.a" \"$INSTALL_PATH/${OPENSSL_VERSION}-iOS-x86_64/lib/libcrypto.a" \-create -output lib/iOS/libcrypto.alipo \ "$INSTALL_PATH/${OPENSSL_VERSION}-iOS-armv7/lib/libssl.a" \ "$INSTALL_PATH/${OPENSSL_VERSION}-iOS-armv7s/lib/libssl.a" \"$INSTALL_PATH/${OPENSSL_VERSION}-iOS-arm64/lib/libssl.a" \"$INSTALL_PATH/${OPENSSL_VERSION}-iOS-i386/lib/libssl.a" \"$INSTALL_PATH/${OPENSSL_VERSION}-iOS-x86_64/lib/libssl.a" \-create -output lib/iOS/libssl.aecho "Cleaning up"rm -rf $INSTALL_PATH/${OPENSSL_VERSION}-*#rm -rf ${OPENSSL_VERSION}echo "Done"
阅读全文
0 0
- mac编译iOS版openssl
- mac下ios 7.1 版本openssl编译
- mac 下编译openssl
- mac openssl 编译
- 编译ios版openssl(2013/01/28)
- iOS OpenSSL 编译
- iOS 编译openssl
- 在mac上编译openssl
- Mac下编译openssl库
- 编译ios平台的openssl
- iOS 编译armv7 armv7s openssl
- 编译iOS libevent + openssl + tor
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- ios 编译openssl支持arm64
- OpenSSL for iOS 编译路程
- 小白学习JavaScript——初步了解
- 揭秘Camera Turning
- C#与C++之间类型对应关系
- HDU-6006-Engineer Assignment
- 【C#】教程
- mac编译iOS版openssl
- 作业
- Java_MyTomcat
- SGU 326 Perspective (网络流)
- reference引用笔记----C++学习之路
- git config 配置
- 树的子结构
- Java 解析 Json 文件 (把 Json 转化成 String 的方法来解析)
- 十、内部类的认识