Мы автоматизировали сборку нашего текущего проекта с помощью TeamCity/Command Line Tools. Чтобы наверстать как можно больше потенциальных проблем, мы установили, что проект использует статический анализатор для каждой сборки. Анализатором было отмечено несколько сторонних классов, поэтому мы исключили сомнительные классы, отметив их:
-w -Xanalyzer -analyzer-disable-checker
Все работает как ожидается при компиляции в Xcode (протестировано с 4.6.3 и 5.0.1).
Но при компиляции на сервере TeamCity мы получаем следующую ошибку для каждого исключенного стороннего файла:
__PIC__ level differs in PCH file vs. current fileerror: __PIC__ level differs in PCH file vs. current file2 errors generated.
Ошибка исчезнет, если мы удалим теги -Xanalyzer -analyzer-disable-checker (но, конечно, в этом случае мы получаем предупреждения анализатора).
Такая же ошибка возникает, если мы скомпилируем с помощью AppCode, что заставляет меня думать, что это как-то связано с инструментами командной строки, как с AppCode, так и с сервером TeamCity, используя их для компиляции сборок.
Сервер TeamCity использует инструменты командной строки Xcode 4, и я пробовал AppCode с Xcode 4 и 5.
При попытке с помощью AppCode с использованием инструментов командной строки Xcode 5 ошибка немного отличается (еще раз, по одному для каждого исключенного класса):
error reading 'pic'
no analyzer checkers are associated with '-mrelocation-model'
Итак, вопрос: кто-нибудь знает, как избавиться от этой ошибки, подавляя предупреждения анализатора для определенных классов при использовании инструментов командной строки (если инструменты командной строки действительно виноваты здесь)?