Three20& XCode4:找不到不支持的编译器'GCC 4.2'或接口声明

时间:2011-12-06 14:14:50

标签: iphone ios5 three20 xcode4.2

一年多以前,我在公司做了一个项目,与Three20和iOS3.1.3合作。 高达4. *,它适用于一些iPhone。我没有必要纠正任何事情,甚至不需要重新编译包。甚至后来iPhone4的Retina-Display也没有出现任何问题。

现在在iOS5上,ipa不再适用了。所以我不得不“重新设置”整个事情。

iOS3 - >五 XCode 3.2 - > 4.2 Three20(旧) - > 1.09(从这里下载zip:https://github.com/facebook/three20

经过多次尝试,我想要一个清晰的状态。所以我在项目设置中删除了旧的Three20-things,并简单地集成了它,如下所述: http://three20.info/article/2011-03-10-Xcode4-Support 试。

现在我得到了:

检查依赖关系

  

为架构'armv6'选择了不支持的编译器'GCC 4.2'   为架构'armv7'选择了不支持的编译器'GCC 4.2'

在之前的尝试中,我只是将每个Three20-Module中的编译器更改为Apple LLVM 4.2并删除所有arm6-reminings,因为最古老的iPhone现在使用的是带有5.0.1的3Gs。 3G可以使用以前工作的旧ipa。 这只会将错误更改为其他错误。

那么,是否有人对这些问题感到满意?

编辑: 我删除所有armv6出现后,“令人惊讶”只有第二个

  

为架构'armv7'选择了不支持的编译器'GCC 4.2'

似乎......原则上没有任何线索,但是:为归档工作构建和为模拟器构建现在都可以工作。只有我无法部署真正的iPhone 4 5.0.1。

3 个答案:

答案 0 :(得分:3)

我之前在其他项目中看到了这个问题。根据我的经验,xCode经常与旧项目竞争,特别是与其他项目/框架相关联的大项目。

'官方'方式;

  1. 尝试编译项目。
  2. 通过单击中央控制台中的红色感叹号导航到错误。 (应用程序的中上部)
  3. 向左向下滚动列表,找到红色感叹号。
  4. 点击左侧列表中的项目(蓝色图标,可能的.xcodeproj扩展名)。
  5. 转到'构建设置'
  6. 找到C / C ++ / Objective-C'的编译器设置'构建选项'类别。

  7. 将编译器从GCC 4.2更改为支持的编译器。 (现在:Apple LLVM或LLVM GCC)

  8. 这种方法可能适用于您,也可能不适合您。 这可能是我有限的理解,但似乎在某些情况下,旧设置会延续下去'无法通过GUI访问,但它们仍然可能导致问题。此外,如果此错误出现在框架中而不是项目中,那么您就不能幸运了,因为您无法始终更改这些错误的设置。

    在那种情况下:

    肮脏的方式;

    1. 使用' grep'要找到不正确的设置,应该在.pbxproj文件中。打开项目的命令行,然后执行:

      grep -r "GCC_VERSION" * | grep 4.2

    2. 你会找到这样的行:

      GCC_VERSION = 4.2;

    3. 在您喜欢的文本编辑器中打开文件,然后更改为:

      GCC_VERSION = com.apple.compilers.llvmgcc42;

      • 或者如果您想尝试最新的编译器:

      GCC_VERSION = com.apple.compilers.llvm.clang.1_0;

      • 您可以查看主项目文件或其他有效的项目,而不是使用这些值,以查看在那里使用的值。
    4. 如果这没有帮助;

      在太多版本的xCode之间转换项目后,最终它实际上会节省您开始使用干净的平板,打开一个新的空xCode项目,并手动拖入旧项目中的所有代码的时间。

答案 1 :(得分:1)

确保您也更改了扩展程序的编译器设置。如果它仍然显示“不支持的编译器”,您可能忘记在三个子项目中的一个中更改它。

另外,检查在Architectures

下是否同时拥有armv6和armv7

您可以发送您拥有的构建设置的屏幕截图吗?

答案 2 :(得分:0)

我解决了这个问题,删除了Three20文件夹中的旧“Build”文件夹。