这是在xcode 4.2中启用gcc 4.2编译的方法。这主要是通过命令行完成的,因此当您看到以:开头的行时,您需要打开Terminal.app并运行在.[ 15:30 jon@MacBookPro / ]$$
在此过程中不会删除或删除任何文件或目录,因此如果将来需要使用 LLVM 进行编译,很容易撤消。
下载 -但尚未安装- xcode_4.1_for_lion.dmg或xcode_4.1_for_snow_leopard.dmg
现在,按照以下步骤将 Xcode 4.1 安装到/Developer-4.1:
备份工作/Developer目录(Xcode 4.2安装目录)
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.2
Run Code Online (Sandbox Code Playgroud)
使用默认安装位置 ( /Developer)运行 Xcode 4.1 安装程序
将新的 Xcode 4.1 安装移至/Developer-4.1:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
Run Code Online (Sandbox Code Playgroud)将 Xcode 4.2 开发人员目录移回/Developer:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
Run Code Online (Sandbox Code Playgroud)编辑 Xcode 4.2GCC 4.2.xcspec文件以使 gcc 4.2 显示在编译器选项列表中[1]:
[ 15:30 jon@MacBookPro / ]$ sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2 (Plausible Blocks).xcplugin/Contents/Resources/GCC 4.2.xcspec"
Run Code Online (Sandbox Code Playgroud)
更改第 41行和42行:
ShowInCompilerSelectionPopup = NO;
IsNoLongerSupported = YES;
Run Code Online (Sandbox Code Playgroud)对此:
ShowInCompilerSelectionPopup = YES;
IsNoLongerSupported = NO;
Run Code Online (Sandbox Code Playgroud)备份 Xcode 4.2 iOS/模拟器框架usr目录:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr.backup
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneSimulator.platform/Developer/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr.backup
Run Code Online (Sandbox Code Playgroud)将 Xcode 4.1 iOS/Simulator Frameworkusr目录复制到 Xcode 4.2:
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr
Run Code Online (Sandbox Code Playgroud)gcc将 Xcode 4.1和iOS SDK 库目录复制info到 Xcode 4.2 [2]:
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/gcc /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/gcc
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/info /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/info
Run Code Online (Sandbox Code Playgroud)使用gcc-4.2编译!

这是我写的一篇博客文章,其中包含有关此过程的更多信息。如果您遇到任何问题或有任何疑问,请随时在博客上发表评论。
[1]如果从命令行打开(使用诸如vi、emacs、nano等),请确保将路径用引号括起来"/long path/with spaces/in it/file.xcspec"或转义空格/some/long\ path/with\ spaces/in\ it/file.xcspec
[2]这是必要的,因为 iPhoneOS.platform SDK 有自己单独的/usr/lib目录,但 iPhoneSimulator.platform SDK 没有