Mac上交叉編譯iOS靜態(tài)庫

本文主要以fftw為例子,進(jìn)行iOS靜態(tài)庫的編譯。

環(huán)境要求:

?  ~ xcodebuild -version
Xcode 9.4.1
Build version 9F2000

運行腳本如下:

#!/bin/sh

xcodebuild -version
xcodeversion_current=`xcodebuild -version`
xcodeversion="7.3.1"
result=$(echo $xcodeversion_current | grep "$xcodeversion")
echo $result
if [[ "$result" != "" ]]
then
  echo "此時Xcode版本設(shè)置錯誤,請運行命令 'sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer' 來更換Xcode版本 "
  exit
fi

# build for iOS / Mac
# changed by 10mitri
# original:
# http://stackoverflow.com/questions/3588904/how-to-link-third-party-libraries-like-fftw3-and-sndfile-to-an-iphone-project-in


# this is the folder where the libs will be generated
export OUTPUT_DIR=a_ios-libs

# Select toolchains folder
export XCODE_TOOLCHAINS=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain


#$(CURRENT_ARCH)

build_target()
{
    PLATFORM=$1
    ARCH=$2
    SDK_VERSION=$3
    CONFIGURE_HOST=$4
    IOS_DEPLOYMENT_TARGET=$5

    export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/$PLATFORM.platform/Developer/SDKs/$PLATFORM$SDK_VERSION.sdk

    export CPPFLAGS="-I$SDKROOT/usr/include/ -mfpu=neon"
    export CFLAGS="$CPPFLAGS -arch $ARCH -isysroot $SDKROOT -mfpu=neon -O3"
    export LD=$XCODE_TOOLCHAINS/usr/bin/ld
    export CXX="$XCODE_TOOLCHAINS/usr/bin/clang -arch $ARCH -fembed-bitcode -mfpu=neon"
    export CC="$XCODE_TOOLCHAINS/usr/bin/clang -arch $ARCH -fembed-bitcode -mfpu=neon"

    echo ---------------------------------------------------
    echo ---------------------------------------------------
    echo ---------------------------------------------------
    echo -------------- BUILD TARGET
    echo -------------- PLATFORM : $PLATFORM
    echo -------------- ARCH : $ARCH
    echo -------------- SDK_VERSION : $SDK_VERSION
    echo -------------- HOST : $CONFIGURE_HOST
    echo -------------- MIN iOS : $IOS_DEPLOYMENT_TARGET
    echo -------------- SDK PATH : $SDKROOT
    echo ---------------------------------------------------
    echo ---------------------------------------------------
    echo ---------------------------------------------------

    #sleep 3

    make clean

    ./configure --host=$CONFIGURE_HOST --enable-float  --enable-$ARCH-cntvct

    make -j4

    mkdir $OUTPUT_DIR/$ARCH

    # Copy the lib
    cp .libs/libfftw3f.a $OUTPUT_DIR/$ARCH/libfftw3f.a

    unset CPPFLAGS CFLAGS LD CXX CC
}


mkdir $OUTPUT_DIR

rm -rf $OUTPUT_DIR/*

# Copy the header file too, just for convenience
cp api/fftw3.h $OUTPUT_DIR/fftw3.h

#build_target "iPhoneOS" "armv7s" "11.4" "arm-apple-darwin" "7.0"
build_target "iPhoneOS" "armv7" "11.4" "arm-apple-darwin" "7.0"
build_target "iPhoneOS" "arm64" "11.4" "arm-apple-darwin" "7.0"
build_target "iPhoneSimulator" "x86_64" "11.4" "x86_64-apple-darwin" "7.0"
build_target "iPhoneSimulator" "i386" "11.4" "i386-apple-darwin" "7.0"

#build_target "MacOSX" "x86_64" "11.4" "i386-apple-darwin" "7.0"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,211評論 3 119
  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務(wù) 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,195評論 1 180
  • 電線劃過天空給城市裝點 路燈閃過行人給城市裝點 路牌不分四季給城市裝點 疾馳車子閃耀給城市裝點 我希望著孤獨是我的...
    eds陳明閱讀 138評論 1 1
  • 有時候感動并不會流淚,有的只是流淌在心中的溫暖。
    書洱閱讀 328評論 2 0
  • 最近睡覺不規(guī)律,也許初夏還不太適應(yīng)的原因,蓋被子總是出汗,半夜醒來發(fā)現(xiàn)渾身被汗水浸透。蓋被單有點涼,不小心容易感冒...
    陳講運清潔能源閱讀 359評論 1 2

友情鏈接更多精彩內(nèi)容