在Xcode 4.2和iOS SDK 5.0中使用gcc 4.2
我今天早些时候升级到了Xcode 4.2和iOS SDK 5。 但是新编译器的一切似乎都不一样。
现在有两个“C / C ++ / Objective-C编译器”选项,“Apple LLVM编译器3.0”和“LLVM GCC 4.2”。 GCC 4.2缺失。
苹果LLVM编译器3.0,构build真快(我喜欢这样),给我999 +警告,我的游戏不能再运行。 看起来内存有些不同,加载我们游戏的脚本时崩溃了。
LLVM GCC 4.2是如此神速,我仍然无法在我的i7机器上完成一个小时后的构build。
而且,还有一件事是我们的引擎使用gcc命令行来构build(而不是xcode)。
所以,这导致了一个问题, 我如何在Xcode 4.2中使用gcc 4.2 ? 这甚至可能吗?
这是一个在xcode 4.2中使用gcc 4.2编译的方法。 其中大部分是通过命令行完成的,所以当你看到这样的行时: [ 15:30 jon@MacBookPro / ]$
,你需要打开一个terminal并在$
后面运行命令。
在这个过程中没有文件或目录被删除或删除 ,所以如果将来需要使用LLVM进行编译,则很容易撤销。
-
下载 – 但不要安装 – xcode_4.1_for_lion.dmg或xcode_4.1_for_snow_leopard.dmg
-
现在,请按照以下步骤将Xcode 4.1安装到
/Developer-4.1
:-
备份working
/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"
-
改变第41和42行:
ShowInCompilerSelectionPopup = NO; IsNoLongerSupported = YES;
-
为此:
ShowInCompilerSelectionPopup = YES; IsNoLongerSupported = NO;
备份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编译!
这是我写了一个关于这个过程的更多信息的博客文章。 如果您遇到任何问题或有任何问题,请随时在博客上发表评论。
[1]如果从命令行打开(使用vi
, emacs
, nano
等),请确保将path用引号“/ 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不
苹果公司在今年的WWDC上表示,XCode 4.2中不再提供GCC。 但是,他们表示LLVM编译器支持与GCC相同的命令行开关。
我试图更新这个Xcode的应用版本。 这将显示如何安装Xcode 4.4.x全面的gcc支持。
您需要:Mac OSX Lion – 这很重要,不要尝试与山狮!
您需要:Lion的Xcode 4.1的副本。 从您的开发者帐户从苹果下载。 不要安装。
现在通过Mac App Store从Apple安装Xcode 4.4.x。
完成之后,您的应用程序目录中将包含xcode 4.4.x。
根据用户权限,您必须使用pipe理员密码确认许多操作。 只要有需要就这样做。 如果你损坏了你的系统,那么你是自己的(尽pipeXcode已经被使用过了,但这不应该发生)。
打开Xcode 4.4.x通过右键单击和“显示包内容”,然后导航到这里的gcc 4.2插件:
/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2.xcplugin / Contents / Resources /
用文本编辑器打开文件gcc 4.2.xcspec。
看第41行和第42行。确保它们看起来完全如此(在新的安装中将会颠倒这些值)。
ShowInCompilerSelectionPopup = YES; IsNoLongerSupported = NO;
保存并closures。
为Lion安装Xcode 4.1。
现在导航到启动驱动器根目录下的开发者目录。
导航到/Developer/Platforms/iPhoneOS.platform/Developer/usr/
用命令c复制usr目录
切换回到xcode 4.4.x
导航到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/
用命令-v粘贴usr目录
现在狮子会尝试合并这两个目录。 确保按“保持较新”
重复源代码:/Developer/Platforms/iPhoneSimulator.platform/Developer/usr目标:/Applications/Xcode.app/Contents/Developer/Platforms/usr
再次,合并和“保持较新”
导航到:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib
现在通过select它并使用命令c复制gcc目录
导航到Xcode 4.4.x应用程序:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib
用命令-v粘贴gcc目录
从/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib重复“info”目录目标是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer /SDKs/iPhoneOS5.1.sdk/usr/lib
完成。 启动xcode并在必要时在设置中selectGCC 4.2。 您应该删除过时的“开发人员”目录。
Xcode现在也应该再次接受通过Mac App Store的更新(这还有待testing)。 我也没有下载命令行工具,但我的猜测是它也能存活下来。