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

来源:互联网 发布:知乎 环氧树脂固化剂 编辑:程序博客网 时间:2024/05/21 19:10
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



--------------------------------------------------------------------------------------

- 版权声明:

- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。

- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。

- 文章标题: [iOS]Xcode5下使用Makefile编译找不到GCC

- 独立博客:李大仁博客

- 永久链接:http://www.lidaren.com/archives/1258

--------------------------------------------------------------------------------------

以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。




0 0
原创粉丝点击