Разумно ли для начала использовать Clang?[закрыто]
-
16-09-2019 - |
Вопрос
Я только начинаю работать с xcode и изучаю Objective-C & Cocoa, было бы полезно поменять компилятор в Xcode 3.2 на Clang для расширенной проверки ошибок и статического анализатора.Мне просто интересно, будут ли полезны предоставленные дополнительные услуги или мое обучение будет лучше проходить в соответствии с настройками по умолчанию?
большое спасибо
гэри
Решение
Есть несколько вариантов использования CLANG:
Запустите сборку и анализ, чтобы увидеть результаты clang .
В настройках проекта для получения конфигурации вы можете установить флажок "запустить статический анализатор", и CLANG будет запускаться при каждой компиляции.
Вы также можете изменить компилятор с GCC 4.x на CLANG / LLVM.Это отображает больше ошибок и звуков предупреждений (одним из примеров является то, что
NSLog(@"A value is %@:%@", value)
предупредит вас, что вы не передаете достаточное количество параметров).
Я бы порекомендовал вариант 2 - если вы запускаете статический анализатор при каждой сборке, это не занимает намного больше времени, и вы сразу узнаете, делаете ли вы что-то странное, вместо того, чтобы исправлять кучу ошибок позже.Четкие сообщения, которые он вам дает, на самом деле представляют большую образовательную ценность, поэтому имеет смысл включить его, если вы только учитесь!
Вариант 3 полезно запускать время от времени из-за большей проверки на ошибки.Однако в настоящее время в XCode нет компилятора CLANG / LLVM для устройства iPhone, и поэтому вы можете использовать этот параметр только при компиляции для симулятора.В таком случае наилучшим подходом является создание копии конфигурации отладки (на вкладке конфигурации настроек проекта) с именем "Debug CLANG" и настройка этой конфигурации на использование компилятора CLANG / LLVM и запуск статического анализатора.Обратите внимание, что после создания новой конфигурации вам необходимо выйти из настроек, выбрать ее в качестве активной конфигурации (через выпадающий список в правом верхнем углу), а затем вернуться в настройки проекта, чтобы отредактировать значения.
Затем в повседневном использовании вы просто используете параметр "Debug" для компиляции с использованием статического анализатора и переключаетесь на "Debug CLANG", возможно, раз в неделю, чтобы посмотреть, существуют ли какие-либо более глубокие проблемы.
Другие советы
Вы можете использовать статический анализатор без использования компилятора Clang.Обычно вы не будете использовать анализатор в качестве варианта сборки по умолчанию, поскольку он немного замедляет время сборки.
Однако компилятор Clang — хороший вариант даже без учета статического анализа.Как вы заметили, у него гораздо лучший отчет об ошибках, но главное преимущество в том, что он очень быстрый, фактически в моем тестировании он почти в два раза быстрее, чем GCC.
Если вы «Создаете и анализируете» или включаете настройку «Запустить статический анализатор» в XCode, вы получаете статический анализ Clang.
Если вы не занимаетесь разработкой на C++, переход с gcc на Clang не имеет особых недостатков.Вам просто не нужно этого делать, чтобы воспользоваться преимуществами статического анализа Clang.