现在网上流传的curl编译教程可以说都是古董啊,已经不适用了。起码xcode的c++环境变量一个也对不上。我也是在国外爬到的贴子(6.1),xcode应该是6.0版本之后结构发生变化,gcc变成了
我试了下脚本,编译的时间还挺长的
使用方法:
首先创建一个目录,名字任意,然后创建一个build.sh脚本,然后把这个下载好的curl_xxx.zip放到这个目录下(和build.sh同级),然后把上面脚本复制到build.sh中,再修改对应的curl版本,最新好像是7.48吧。然后把这个build.sh拖放到终端回车即可生成.a静态库了。
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
我试了下脚本,编译的时间还挺长的
#!/bin/bash # This script builds a static version of # curl ${CURL_VERSION} for iOS 7.1 that contains code for # arm64, armv7, arm7s, i386 and x86_64. set -x # Setup paths to stuff we need CURL_VERSION="7.26.0" DEVELOPER="/Applications/Xcode.app/Contents/Developer" SDK_VERSION="9.2" MIN_VERSION="8.1" IPHONEOS_PLATFORM="${DEVELOPER}/Platforms/iPhoneOS.platform" IPHONEOS_SDK="${IPHONEOS_PLATFORM}/Developer/SDKs/iPhoneOS${SDK_VERSION}.sdk" IPHONEOS_GCC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" IPHONESIMULATOR_PLATFORM="${DEVELOPER}/Platforms/iPhoneSimulator.platform" IPHONESIMULATOR_SDK="${IPHONESIMULATOR_PLATFORM}/Developer/SDKs/iPhoneSimulator${SDK_VERSION}.sdk" IPHONESIMULATOR_GCC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" # Make sure things actually exist if [ ! -d "$IPHONEOS_PLATFORM" ]; then echo "Cannot find $IPHONEOS_PLATFORM" exit 1 fi if [ ! -d "$IPHONEOS_SDK" ]; then echo "Cannot find $IPHONEOS_SDK" exit 1 fi if [ ! -x "$IPHONEOS_GCC" ]; then echo "Cannot find $IPHONEOS_GCC" exit 1 fi if [ ! -d "$IPHONESIMULATOR_PLATFORM" ]; then echo "Cannot find $IPHONESIMULATOR_PLATFORM" exit 1 fi if [ ! -d "$IPHONESIMULATOR_SDK" ]; then echo "Cannot find $IPHONESIMULATOR_SDK" exit 1 fi if [ ! -x "$IPHONESIMULATOR_GCC" ]; then echo "Cannot find $IPHONESIMULATOR_GCC" exit 1 fi # Clean up whatever was left from our previous build rm -rf lib include-32 include-64 rm -rf /tmp/curl-${CURL_VERSION}-* rm -rf /tmp/curl-${CURL_VERSION}-*.*-log build() { HOST=$1 ARCH=$2 GCC=$3 SDK=$4 MOREFLAGS=$5 rm -rf "curl-${CURL_VERSION}" unzip "curl-${CURL_VERSION}.zip" -d "." pushd . cd "curl-${CURL_VERSION}" export IPHONEOS_DEPLOYMENT_TARGET=${MIN_VERSION} export CC=${GCC} export CFLAGS="-arch ${ARCH} -pipe -Os -gdwarf-2 -isysroot ${SDK}" export CPPFLAGS=${MOREFLAGS} export LDFLAGS="-arch ${ARCH} -isysroot ${SDK}" ./configure --disable-shared --enable-static --host=${HOST} --without-ssl --without-libssh2 --without-ca-bundle --without-ldap --disable-ldap --prefix="/tmp/curl-${CURL_VERSION}-${ARCH}" &> "/tmp/curl-${CURL_VERSION}-${ARCH}.log" make -j `sysctl -n hw.logicalcpu_max` &> "/tmp/curl-${CURL_VERSION}-${ARCH}.build-log" make install &> "/tmp/curl-${CURL_VERSION}-${ARCH}.install-log" popd rm -rf "curl-${CURL_VERSION}" } build "armv7-apple-darwin" "armv7" "${IPHONEOS_GCC}" "${IPHONEOS_SDK}" "" #build "armv7s-apple-darwin" "armv7s" "${IPHONEOS_GCC}" "${IPHONEOS_SDK}" "" #build "arm-apple-darwin" "arm64" "${IPHONEOS_GCC}" "${IPHONEOS_SDK}" "" #build "i386-apple-darwin" "i386" "${IPHONESIMULATOR_GCC}" "${IPHONESIMULATOR_SDK}" "-D__IPHONE_OS_VERSION_MIN_REQUIRED=${IPHONEOS_DEPLOYMENT_TARGET%%.*}0000" #build "x86_64-apple-darwin" "x86_64" "${IPHONESIMULATOR_GCC}" "${IPHONESIMULATOR_SDK}" "-D__IPHONE_OS_VERSION_MIN_REQUIRED=${IPHONEOS_DEPLOYMENT_TARGET%%.*}0000" # mkdir -p lib include-32 include-64 cp -r /tmp/curl-${CURL_VERSION}-i386/include/curl include-32/ cp -r /tmp/curl-${CURL_VERSION}-x86_64/include/curl include-64/ lipo \ "/tmp/curl-${CURL_VERSION}-armv7/lib/libcurl.a" \ "/tmp/curl-${CURL_VERSION}-armv7s/lib/libcurl.a" \ "/tmp/curl-${CURL_VERSION}-arm64/lib/libcurl.a" \ "/tmp/curl-${CURL_VERSION}-i386/lib/libcurl.a" \ "/tmp/curl-${CURL_VERSION}-x86_64/lib/libcurl.a" \ -create -output lib/libcurl.a rm -rf "/tmp/curl-${CURL_VERSION}-*" rm -rf "/tmp/curl-${CURL_VERSION}-*.*-log"
使用方法:
首先创建一个目录,名字任意,然后创建一个build.sh脚本,然后把这个下载好的curl_xxx.zip放到这个目录下(和build.sh同级),然后把上面脚本复制到build.sh中,再修改对应的curl版本,最新好像是7.48吧。然后把这个build.sh拖放到终端回车即可生成.a静态库了。
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2300
- 用户1336
- 访客10861715
每日一句
True success inspires others to act.
真正的成功是激励他人行动。
真正的成功是激励他人行动。
语法错误: 意外的令牌“标识符”
全面理解Gradle - 定义Task
Motrix全能下载工具 (支持 BT / 磁力链 / 百度网盘)
谷歌Pixel正在开始起飞?
获取ElementUI Table排序后的数据
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is
亲测!虚拟机VirtualBox安装MAC OS 10.12图文教程
华为手机app闪退重启界面清空log日志问题
android ndk开发之asm/page.h: not found
手机屏幕碎了怎么备份操作?
免ROOT实现模拟点击任意位置
新手必看修改DSDT教程
thinkpad t470p装黑苹果系统10.13.2
新会员