Я разработчик для iOS, я не знаю, как работают компиляторы, и я хочу спросить, в чем разница между LLVM GCC 4.2, компилятором по умолчанию Xcode 4 и компилятором GCC 4.2, компилятором по умолчанию Xcode 3.
Вот мое понимание
GCC 4.2 - это (в основном) стандартный стандартный компилятор GNU C с открытым исходным кодом, который работает с C, C ++ и Objective-C.Это в значительной степени стандартный компилятор, используемый во всех открытых источниках, и он проверен и проверен.Но поскольку его старая технология, это просто компилятор, у него нет хуков для других целей.И это довольно универсально, поскольку не зависит от процессора и платформы.
LLVM - это следующее поколение программного обеспечения для компиляции.Он синтаксически и семантически осведомлен, компилируется в байт-код, а затем в нативный, и предоставляет хуки, чтобы IDE и другие инструменты могли использовать его знания.Именно эта осведомленность позволяет Apple улучшать автозаполнение, внедрять исправления, выполнять сборку и анализ в Xcode 4. LLVM - это будущее Apple и будущее для GCC.LLVM также производит предположительно более жесткий код, так как его оптимизации более разумны (не уверен в этом).LLVM также допускает более динамические привязки языка в некоторый момент.
LLVM GCC - это промежуточная отметка, синтаксическая и семантическая предварительная обработка LLVM со старым внутренним компилятором GCC.
Способ их использования
Я использую LLVM во время разработки, так как он предупреждает меня о любых проблемах.Действительно помог, когда я впервые запустил его на унаследованном коде и обнаружил некоторые проблемы.
Я использую GCC для создания окончательного исполняемого файла для приложений iOS 3.1.3 и LLVM для всех iOSПриложения 4.0 / Mac 10.6.