2011-03-30 46 views
0

我有我的应用程序设置为在编译器版本下的目标>生成设置中使用LLVM GCC 4.2,它适用于模拟器。如何在使用LLVM GCC的设备上编译iPad应用程序?

当我将我的“Scheme”切换到iPad的目标时,它会抛出与我使用GCC时相同的警告,所以我假设它现在正在GCC下编译。但“C/C++编译器版本”目标仍然设置为LLVM GCC 4.2(除iOS默认值外,其为GCC 4.2且我无法更改)。

为什么它不再编译LLVM GCC,我该如何改变它以便它在iPad下执行?

编辑:我得到的错误与访问超类的实例变量有关。如果你没有把它写成[self iVarName],那么GCC会给出一个错误,而如果你只是使用iVarName,那么LLVM GCC编译得很好。

+0

你有没有清理这个目标?你能举一个你试图避免这种方式的错误的例子吗? – 2011-04-03 01:16:12

+0

我确实相信我清理了目标。该错误与引用超类的实例变量有关。将错误添加到我的问题中。 – AndrewKS 2011-04-03 02:17:24

+0

你是否偶然运行32位模拟器?我的猜测是你在iPad上使用LLVM/GCC,但记住iPad使用现代运行时。听起来你的代码正在做一些现代运行时不允许的事情。使用超类伊娃可能合成一个属性? – 2011-04-03 04:47:24

回答

-1

LLVM GCC是使用GCC编译器的LLVM 预处理器,因此您应该看到相同的错误消息(以及LLVM中的更多IDE)。你可以试试LLVM Compiler 2.0,但目前它有一些缺陷。要设置编译器,请选择左上角的项目,点击Build Settings选项卡并更改编译器。

+0

“LLVM GCC是具有GCC编译器的LLVM预处理器,所以您应该看到相同的错误消息(并且LLVM中还有更多IDE)。”我不......事实上LLVM GCC没有显示GCC没有的错误。而且,当我使用iPad设备时,即使将编译器设置为LLVM GCC,它也会引发GCC所做的LLVM GCC所没有的错误。请阅读这个问题。 – AndrewKS 2011-03-30 21:33:32

+1

这是相反的。 “LLVM GCC 4.2”实际上是与LLVM后端代码生成器配合的GCC前端。 – 2011-04-03 01:20:47

相关问题