这是一种在 xcode 4.2 中启用 gcc 4.2 编译的方法。这主要是通过命令行完成的,所以当您看到以 [ 15:30 jon@MacBookPro / ]$ 开头的行时,您需要打开 Terminal.app 并运行在 $ 之后开始的命令。
在这个过程中没有removed或deleted文件或目录,所以如果你以后需要用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
使用默认安装位置 (/Developer) 运行 Xcode 4.1 安装程序
-
将新的 Xcode 4.1 安装移动到 /Developer-4.1:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
-
将 Xcode 4.2 开发者目录移回/Developer:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
编辑 Xcode 4.2 GCC 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"
备份 Xcode 4.2 iOS/Simulator Framework 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
将 Xcode 4.1 iOS/Simulator Framework usr 目录复制到 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
将gcc和info iOS SDK库目录从Xcode 4.1复制到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
使用 gcc-4.2 编译!
This is a blog post I've written with a little more info about this process. Feel free to leave a comment on the blog if you run into any issues or have any questions.
[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 没有