3

对于一些较旧的代码,我需要将 gcc 4.2 与 Xcode 4.2 一起使用。我如何让它显示出来。Xcode4.2 似乎已经放弃了对它的支持。

谢谢

4

4 回答 4

4

这是一种在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
      
    3. 使用默认安装位置 ( /Developer)运行 Xcode 4.1 安装程序

    4. 将新的 Xcode 4.1 安装移动到/Developer-4.1

      [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
      
    5. 将 Xcode 4.2 开发者目录移回/Developer

      [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
      
  3. 编辑 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"
    
    • 更改第4142行:

      ShowInCompilerSelectionPopup = NO;
      IsNoLongerSupported = YES;
      
    • 对此:

      ShowInCompilerSelectionPopup = YES; 
      IsNoLongerSupported = NO;
      
  4. 备份 Xcode 4.2 iOS/Simulator Frameworkusr目录:

    [ 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
    
  5. 将 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
    
  6. 将Xcode 4.1gccinfoiOS 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
    
  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 没有

于 2011-10-16T18:36:10.873 回答
1

感谢chown分享这个!我挣扎了大约半天,但结果证明,我只需要几步就可以实现我的目标:

对于只需要 GCC-4.2 来编译应用程序(没有 iOS 的东西)的每个人来说,这很容易:您不需要安装任何东西,只需按照以下几个步骤操作:

  1. 编辑:如果您尚未安装 GCC 4.2(来自早期版本的 Xcode,或手动安装),请按照评论中 Sean DeNigris 的说明进行操作!

  2. 按照原始描述中的第 3 步:
    编辑 Xcode 4.2 GCC 4.2.xcspec 文件以使 gcc 4.2 显示在编译器选项列表中。

  3. 让 Xcode 再次找到编译器:

    ln -s /usr/bin/gcc-4.2 /Developer/usr/bin/gcc-4.2

  4. 同时使链接器可用:

    ln -s /usr/bin/g++-4.2 /Developer/usr/bin/g++-4.2

这对我来说非常有效!但正如我所说,它仅适用于非 iOS 产品!

于 2011-12-21T17:26:35.393 回答
1

因此,让 gcc 4.2 与全新安装的 Xcode 4.2(非 iOS)一起工作的完整过程是:

  1. 安装 gcc 4.2

    sudo port install apple-gcc42
    
  2. 通过编辑 Xcode 4.2 GCC 4.2.xcspec 文件以使 gcc 4.2 显示在编译器选项列表中,调整 Xcode 以使 gcc 4.2 显示为编译器选项:

    1. 打开 xcspec 文件进行编辑:

      sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2.xcplugin/Contents/Resources/GCC 4.2.xcspec"
      
    2. 更改第 41 和 42 行:

      ShowInCompilerSelectionPopup = NO;
      IsNoLongerSupported = YES;
      

      对此:

      ShowInCompilerSelectionPopup = YES;
      IsNoLongerSupported = NO;
      
  3. 将 gcc 4.2 二进制文件链接到 Xcode 期望的位置:

    sudo ln -s /opt/local/bin/gcc-apple-4.2 /Developer/usr/bin/gcc-4.2
    sudo ln -s /opt/local/bin/g++-apple-4.2 /Developer/usr/bin/g++-4.2
    

我在这篇博文中解释了问题和解决方法,它浓缩了我找到的信息。随意发表评论。

于 2012-01-11T16:06:30.203 回答
0

简单而有用的解决方案https://github.com/kennethreitz/osx-gcc-installer/ 它自动化了stackoverflow上的声明列表

于 2012-02-17T10:13:25.683 回答