xcrun -sdk 選擇


在將FFmpeg編譯成IOS版的時候,接觸到編譯腳本的一段(刪減了部分):

 1 for ARCH in $ARCHS
 2     do
 3         if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]
 4         then
 5             PLATFORM="iPhoneSimulator"
 6         else
 7             PLATFORM="iPhoneOS"
 8         fi
 9 
10         XCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'`
11         CC="xcrun -sdk $XCRUN_SDK clang"
12         CXXFLAGS="$CFLAGS"
13         LDFLAGS="$CFLAGS"
14 
15         TMPDIR=${TMPDIR/%\/} $CWD/$SOURCE/configure \
16             --target-os=darwin \
17             --arch=$ARCH \
18             --cc="$CC" \
19             $CONFIGURE_FLAGS \
20             --extra-cflags="$CFLAGS" \
21             --extra-ldflags="$LDFLAGS" \
22             --prefix="$THIN/$ARCH" \
23         || exit 1
24 
25         make -j3 install $EXPORT || exit 1
26         cd $CWD
27     done

腳本中有一句"xcrun -sdk $XCRUN_SDK clang", 是編譯的重點, 其中-sdk 后面接的就是要編譯的平台. 一開始沒怎么注意, 后來想要編譯i386的OSX庫, 由於我的OSX是x64的, 常規方法好像只能編譯出x64的FFmpeg庫, 試了好久, 最終決定嘗試使用和編譯IOS庫類似的方法. 但問題來了, 這個XCRUN_SDK選什么呢?

觀察IOS版的腳本發現,xcrun的-sdk后面接的sdk_name和xcodebuild的-sdk是一樣的. 試了一下, 果然如此, 似乎又學習到了一點東西!

xcodebuild支持的sdk可使用"xcodebuild -showsdks"命令查看, 選擇時, 忽略后面的版本號就好. 例如 iphoneos9.3, 則選擇 iphoneos


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM