Как да накарам приложение за iPad да се компилира на устройство, използващо LLVM GCC?

Приложението ми е настроено да използва LLVM GCC 4.2 в Target>Build Settings под Compiler Version и то работи за симулатора.

Когато превключих моята „Схема“, за да насоча към iPad, тя издаде същите предупреждения, каквито получавах, когато използвах GCC, така че предполагам, че сега се компилира под GCC. Но целта „C/C++ Compiler Version“ все още е настроена на LLVM GCC 4.2 (освен под iOS по подразбиране, където е GCC 4.2 и не мога да променя).

Защо вече не се компилира с LLVM GCC и как мога да го променя така, че да го прави под iPad?

Редактиране: Грешката, която получавах, е свързана с достъпа до променливата на екземпляр на суперклас. GCC дава грешка, ако не сте го написали като [self iVarName], докато LLVM GCC компилира добре, ако просто използвате iVarName.


person AndrewKS    schedule 30.03.2011    source източник
comment
Почистихте ли тази цел? И можете ли да дадете пример за грешка, която се опитвате да избегнете по този начин?   -  person Firoze Lafeer    schedule 03.04.2011
comment
Вярвам, че почистих целта. Грешката беше свързана с препращане към променлива на екземпляр на суперклас. Добавих грешката към моя въпрос.   -  person AndrewKS    schedule 03.04.2011
comment
Пускате ли случайно 32-битов симулатор? Предполагам, че използвате LLVM/GCC на iPad, но не забравяйте, че iPad използва модерното време за изпълнение. Звучи сякаш кодът ви прави нещо, което не е позволено в съвременната среда за изпълнение. Синтезиране на свойство с помощта на суперклас ivar може би?   -  person Firoze Lafeer    schedule 03.04.2011
comment
Използвах го точно като този въпрос и също го реших, правейки същото: stackoverflow.com/questions/3957288/ Ако iPad използваше LLVM/GCC, тогава вярвам, че би не получава тази грешка - но за съжаление се получава. Не съм сигурен дали използвам 32-битов симулатор. Ще трябва да проверя в понеделник, когато се върна на работа. iPad 32-битов ли е или 64?   -  person AndrewKS    schedule 03.04.2011
comment
iPad е 32-битов, но използва модерното време за изпълнение като 64-битовите Mac. Моето предложение е да публикувате действителния код и грешката, които получавате, и някой може да разреши този основен проблем. Ако, например, се опитвате да @synthesize свойство в подклас, който се опитва да обвие ivar на суперклас, не можете да направите това директно в модерното време за изпълнение.   -  person Firoze Lafeer    schedule 03.04.2011
comment
Между другото, пренебрегвайте това, което казах за 32-битовата SIM карта. Мислех си за сим преди лятото на 2010 г. Независимо от това, мисля, че трябва да разгледате основната грешка тук. Мисля, че предположението, че просто имате грешен компилатор, вероятно не е правилно.   -  person Firoze Lafeer    schedule 04.04.2011


Отговори (1)


LLVM GCC е LLVM препроцесор с GCC компилатора, така че трябва да видите същите съобщения за грешка (и още няколко в IDE благодарение на LLVM). Можете да опитате LLVM Compiler 2.0, но в момента има няколко грешки. За да настроите компилатора, изберете проекта в горния ляв ъгъл, докоснете раздела Настройки за компилация и сменете компилатора.

person Hiltmon    schedule 30.03.2011
comment
LLVM GCC е LLVM препроцесор с GCC компилатор, така че трябва да видите същите съобщения за грешка (и още няколко в IDE благодарение на LLVM). Аз не... всъщност LLVM GCC не показва грешки, които GCC показва. И когато използвам iPad устройството, то извежда грешките, които GCC направи, но LLVM GCC не, въпреки че съм настроил компилатора на LLVM GCC. Моля, прочетете въпроса. - person AndrewKS; 31.03.2011
comment
това е обратното. LLVM GCC 4.2 всъщност е предният край на GCC, съчетан с генератора на код от задния край на LLVM. - person Firoze Lafeer; 03.04.2011