Xcode 4中没有gcc 4.2编译器选项?

MOK*_*OK9 3 iphone xcode gcc4 xcode4

在我的Xcode 4安装中,我只有2个编译器选项:

  1. Apple LLVM编译器3.0
  2. GCC LLVM 4.2

在许多Xcode示例中,我看到GCC 4.2显示为第三个选项,但这根本不存在.我故意干净安装XCode 4.是否有标准的方法来添加GCC 4.2,如果它还没有?我的一个项目要求我使用GCC(而不是GCC LLVM),其他项目我对GCC LLVM感到满意,所以这只是一个问题.

cho*_*own 6

这是一种在xcode 4.2中使用gcc 4.2进行编译的方法.这主要是通过命令行完成的,所以当你看到以:开头的行时,你需要打开Terminal.app并运行在之后启动的命令.[ 15:30 jon@MacBookPro / ]$$

在此过程中不会删除删除任何文件或目录,因此如果您以后需要使用LLVM进行编译,则很容易撤消.

  1. 下载-但没有安装尚未 - xcode_4.1_for_lion.dmgxcode_4.1_for_snow_leopard.dmg

  2. 现在,按照以下步骤将Xcode 4.1安装到/Developer-4.1:

    1. 备份工作/Developer目录(安装Xcode 4.2的地方)

    2. [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.2
      
      Run Code Online (Sandbox Code Playgroud)
    3. 使用默认安装位置运行Xcode 4.1安装程序(/Developer)

    4. 将新的Xcode 4.1安装移至/Developer-4.1:

      [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
      
      Run Code Online (Sandbox Code Playgroud)
    5. 将Xcode 4.2开发人员目录移回/Developer:

      [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
      
      Run Code Online (Sandbox Code Playgroud)
  3. 编辑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"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 备份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
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将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
    
    Run Code Online (Sandbox Code Playgroud)
  6. 复制gccinfo在Xcode 4.1的iOS SDK库目录的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)
  7. 使用gcc-4.2编译!

    xcode 4.2中CGG 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没有