4

刚刚升级到 Lion 和 xcode 4.2。现在当我重新编译我的程序时,我得到了这些错误:

  1. /Users/XXX/Code/iPhone/XXX/Code/Scenes/GameScene.mm:1806:35: current parser token ';'
  2. /Users/XXX/Code/iPhone/XXX/Code/Scenes/GameScene.mm:1762:1: parsing Objective-C method 'updateWithTouchLocationMoved:withEvent:view:'
  3. /Users/XXX/Code/iPhone/XXX/Code/Scenes/GameScene.mm:1762:1: in compound statement ('{}')
  4. /Users/XXX/Code/iPhone/XXX/Code/Scenes/GameScene.mm:1771:2: in compound statement ('{}')
  5. /Users/XXX/Code/iPhone/XXX/Code/Scenes/GameScene.mm:1789:3: in compound statement ('{}')
  6. /Users/XXX/Code/iPhone/XXX/Code/Scenes/GameScene.mm:1796:4: in compound statement ('{}')
  7. /Users/XXX/Code/iPhone/XXX/Code/Scenes/GameScene.mm:1799:5: in compound statement ('{}')
    clang: error: unable to execute command: Segmentation fault: 11
    clang: error: clang frontend command failed due to signal 2 (use -v to see invocation)

这些行号周围没有什么奇怪的。没有复合语句,只有简单的 if(a == b)类型的东西。一些错误行号甚至不在语句上,只是空行或 { 大括号。我怀疑行号不准确。我现在有点死在水里了。代码在 4.1 下编译良好。

有什么建议吗?

4

1 回答 1

2

我阻止了编译器崩溃。在逐行注释掉代码以查看实际发生的位置后,我到达了这一行:

shape.shapeType |= kTypeBreakable;

正在做...

shape.shapeType = shape.shapeType | kTypeBreakable;

...编译得很好。也一样...

shape.shapeType |= 0x00000200;

kTypeBreakable是一个设置为的枚举0x00000200

shapeType只是一个带有 getter/setting 的 obj-c 对象变量。

非常非常奇怪的编译器错误。

于 2011-10-14T08:31:57.230 回答