banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[iOS]在Xcode5下使用Makefile编译时找不到GCC

Xcode5 已經完全棄用了 GCC 並切換到 LLVM,但並不是完全移除 GCC,只是對 GCC 等編譯相關執行檔的位置進行了調整,如果之前使用的是使用 Makefile 方式命令行編譯 iOS APP 的話,Xcode4.6 下編寫的腳本可能會無效,需要對 GCC 的執行檔路徑進行調整。調整內容如下:Xcode4.6 之前:/Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer/usr/bin,Xcode5.0:/Applications/Xcode.app/Contents/Developer/usr/bin。調整後如果出現類似以下錯誤的話,c preprocessor "/lib/cpp" fails sanity check,建議使用 clang++ 並將 - stdlib=g++ 切換為 libc++。如果還是不行,那請切換到 Xcode4.6 下進行編譯,Xcode4.6 下包含 LLVM GCC 4.2。

以下是我用的編譯腳本的部分代碼:

export SDK_VER = "7.0"
export PLATFORM = "iPhoneOS"
export DEV_HOME = "/Applications/Xcode.app/Contents/Developer"
export PLAT_DEV_HOME = "${DEV_HOME}/Platforms/${PLATFORM}.platform/Developer"
export BIN_DIR = "${DEV_HOME}/usr/bin"

7.0 or later?#

if [ "$SDK_VER" == "7.0" ]; then
export BIN_DIR = "${PLAT_DEV_HOME}/usr/bin"
fi
export SDK_ROOT = "${PLAT_DEV_HOME}/SDKs/${PLATFORM}${SDK_VER}.sdk"
export GCC_BIN = "${BIN_DIR}/gcc"

export CFLAGS = ""
export GCC_BASE = " ${GCC_BIN} -Os ${CFLAGS} -Wimplicit \
-isysroot ${SDK_ROOT} \
-F${SDK_ROOT}/System/Library/Frameworks \
-F${SDK_ROOT}/System/Library/PrivateFrameworks "

#armv6,armv7,armv7s,arm64
export GCC = "${GCC_BASE} -arch armv7s"

參考網址:http://www.dotblogs.com.tw/cmd4shell/archive/2013/10/11/123921.aspx

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。