2011-03-30 64 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

相關問題