Compiler errors Xcode 4内部编译器错误:总线错误

Compiler errors Xcode 4内部编译器错误:总线错误,compiler-errors,xcode4,Compiler Errors,Xcode4,Xcode 4.0.1开始给我一个内部编译器错误。它只是说“总线错误”。它出现在我的一个.m文件的底部,现在几乎有4000行长 我已经看过了,但我没有犯这个错误,当它出现时,我通常可以通过在某处添加一些随机的代码行来修复它。当它第一次出现时,我通过一系列新代码跟踪到我正在设置视图框架的位置: view.frame = CGRectMake(otherView.frame.origin.x, 0, otherView2.frame.size.width, 40); 如果我用硬编码的值替换了oth

Xcode 4.0.1开始给我一个内部编译器错误。它只是说“总线错误”。它出现在我的一个.m文件的底部,现在几乎有4000行长

我已经看过了,但我没有犯这个错误,当它出现时,我通常可以通过在某处添加一些随机的代码行来修复它。当它第一次出现时,我通过一系列新代码跟踪到我正在设置视图框架的位置:

view.frame = CGRectMake(otherView.frame.origin.x, 0, otherView2.frame.size.width, 40);
如果我用硬编码的值替换了otherView和otherView2引用,问题就消失了。或者如果我简单地把
intx=0在违规线上方,它消失了

我也看过,但没有一个明确的答案。它似乎不是任何单独的代码行;它似乎是随机出现的。谷歌也没有我能找到的任何明确的解决方案

我尝试了该项目所有可能的编译器(GCC 4.2、LLVM GCC 4.2和LLVM Compiler 2.0),它们都有问题。我将静态分析器设置为运行每个构建,关闭它也没有帮助。似乎表明编译器中存在错误。我只是卡住了吗?有解决方法吗

编辑:另一个例子:它再次发生,我追踪到:

[headerView centerViewVertically:milesLabel pixelsFromRight:pointLabel.frame.size.width + 20];
我把它改成:

int x = pointLabel.frame.size.width;
[headerView centerViewVertically:milesLabel pixelsFromRight:x + 20];
self.title = nil;

它又起作用了。

您是否取消分配了otherView之类的任何对象,我很确定这会在xcode中产生总线错误。

在我看来确实像是一个编译器错误

我遇到了同样的问题(Xcode 4.0.2;LLVM GCC 4.2)。在视图控制器的viewDidLoad中,我有一行:

self.title = @"Enter your details";
我不再需要这一行了,所以我删除了它,随后的构建因“内部编译器错误:总线错误”而失败。如果不是删除这一行,我将其更改为:

int x = pointLabel.frame.size.width;
[headerView centerViewVertically:milesLabel pixelsFromRight:x + 20];
self.title = nil;
构建编译得很好

详细的生成日志包含:

MyViewController.m:316: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
{standard input}:0:End-of-File not at end of a line
{standard input}:1704:End-of-File not at end of a line
{standard input}:unknown:Partial line at end of file ignored
{standard input}:1695:non-relocatable subtraction expression, "L_OBJC_CLASSLIST_REFERENCES_$_6" minus "LPC11_18"
{standard input}:1695:symbol: "L_OBJC_CLASSLIST_REFERENCES_$_6" can't be undefined in a subtraction expression
{standard input}:1692:non-relocatable subtraction expression, "L_OBJC_SELECTOR_REFERENCES_36" minus "LPC11_17"
{standard input}:1692:symbol: "L_OBJC_SELECTOR_REFERENCES_36" can't be undefined in a subtraction expression
[... any many more lines like this ...]
MyViewController.m:316:内部编译器错误:总线错误
请提交完整的bug报告,
如果合适,使用预处理源。
有关说明,请参阅。
{standard input}:0:文件结尾不在行的结尾
{标准输入}:1704:文件结尾不在行的结尾
{standard input}:未知:忽略文件末尾的部分行
{标准输入}:1695:不可重定位减法表达式,“L_OBJC_CLASSLIST_REFERENCES_u$_6”减去“LPC11_18”
{standard input}:1695:symbol:“L_OBJC_CLASSLIST_REFERENCES_$_6”不能在减法表达式中未定义
{标准输入}:1692:不可重定位减法表达式,“L_OBJC_选择器_引用_36”减去“LPC11_17”
{standard input}:1692:symbol:“L_OBJC_SELECTOR_REFERENCES_36”不能在减法表达式中未定义
[…还有更多像这样的行吗…]

我遇到了这个错误,结果证明这个错误是我的,基本上是由o型,或者更准确地说是粘贴o型造成的

我创建了两个标签并将它们添加到子视图中

UILabel *pointsLabel = [[UILabel alloc] initWithFrame:ptsFrame];
...
[self addSubview:pointsLabel];
[pointsLabel release];

UILabel *typeLabel = [[UILabel alloc] initWithFrame:typeFrame];
...
[self addSubview:pointsLabel];
[typeLabel release];
注意,在第二个
addSubview
中,我再次添加了
pointsLabel
,尽管我已经发布了它(实际上是想添加
typeLabel
)。我希望这也会导致运行时错误,但无论出于何种原因,它都会导致上面描述的总线错误。需要寻找的东西。

我刚刚发生了这种情况(不是第一次)。我仍然没有弄清楚到底是什么导致了问题,但它将为模拟器编译,但不会为设备编译。移动我的[[array alloc]init]退出我的init方法,进入一个单独的设置方法,解决了这个问题


也许我在太短的时间内分配了太多的内存或其他什么?但这似乎不太可能,因为有几个[[array alloc]init]在我尝试添加的阵列之前和之后都进行了阵列设置。所有的设置都与其他阵列的设置完全相同,所以这次出现问题的原因我还不明白。

我在下一行代码中出现了相同的错误:

tempButton.titleLabel.adjustsFontSizeToFitWidth = YES;
将同一行代码加倍不会产生错误:

tempButton.titleLabel.adjustsFontSizeToFitWidth = YES;
tempButton.titleLabel.adjustsFontSizeToFitWidth = YES;

我在一个项目中遇到了这个问题,但只有在为设备编译时才遇到。当我为模拟器构建时,它工作得很好

我可以通过在项目的构建设置中将编译器从“LLVM GCC 4.2”更改为“LLVM编译器2.0”来解决这个问题


我不得不认为这是一个编译器错误。它不应该是语法有效但语义错误的代码会导致编译器出错的情况。编译器不执行代码,它只是编译它。因此,不管你是否有逻辑或内存管理错误,编译器不关心这些错误nds的东西。

我也得到了这个错误,只有在xcode对我的代码进行了现代化后,才在设备上编译。我在项目和目标构建设置中将编译器切换到Apple LLVM 2.1,然后再次运行。这在项目中发现了一些错误;错误总线错误消失了。

你使用了任何不推荐使用的函数吗


我删除了对不推荐的函数的所有调用,并在发行版中正常工作!

不,我不这么认为,这应该是一个运行时错误,而不是编译错误。哇!!!。确实如此。这让人感到困惑。我的数组大小为2,是init块中唯一的声明。感谢大家发布解决方案!很高兴我帮助了某人。我仍然不知道为什么这种情况会发生,或者这是解决办法的原因。