2010-07-21 3 views
2

я использую Xcode 3.2.4 и настроили функцию Clang Static Analyzer использовать более новую сборку бинарного, как подробно здесь: http://clang-analyzer.llvm.org/xcode.htmlИспользование внешнего Xcode Clang статический анализатор двоичный, с дополнительными проверками

(в принципе, используя набор-Xcode-анализатор утилита командной строки для изменения которой копия статического анализатора, что Xcode использует для и проанализируйте.)

То, что я не могу понять то, как установить, что двоичный использовать дополнительные проверки, такие как -analyzer-check-objc-missing-dealloc при использовании двоичного кода через Xcode, как описано здесь: http://loufranco.com/blog/files/scan-build-better-than-build-analyze.html и в scan-build --help.

AVAILABLE ANALYSES (multiple analyses may be specified): 

(+) -analyzer-check-dead-stores 
    -analyzer-check-llvm-conventions 
(+) -analyzer-check-objc-mem 
(+) -analyzer-check-objc-methodsigs 
    -analyzer-check-objc-missing-dealloc 
(+) -analyzer-check-objc-unused-ivars 
(+) -analyzer-check-security-syntactic 

NOTE: "(+)" indicates that an analysis is enabled by default unless one 
     or more analysis options are specified 

Как вы можете использовать дополнительные опции для двоичного кода при использовании через Xcode?

ответ

6

При дальнейших исследованиях, кажется, лучший способ сделать это - использовать пару записей в информации о целевой сборке, а не в командном файле set-xcode-analyzer.

Добавить определяемые пользователем настройки, CC, содержащий полный путь к более новой версии двоичного файла следующим образом (обратите внимание, что /бен/лязг на конце пути):

CC = /Path/To/Folder/With/Clang/checker-244/bin/clang 

Тогда в Другие Флаги предупреждения запись добавить как многие из дополнительных проверок, как вы хотите, следующим образом:

WARNING_CFLAGS = -Xanalyzer -analyzer-check-llvm-conventions -Xanalyzer -analyzer-check-objc-missing-dealloc 

Каждый Prec eded аргументом -Xanalyzer, который указывает, что следующий аргумент должен быть передан анализатору.

Подробнее об этом можно найти здесь: Mac OS X Developer Tools Manual Page.

Затем, когда вы делаете Сборка и анализ в Xcode, вы должны использовать внешний, более новый двоичный код, выполняющий дополнительные проверки.

+0

Я сделал то же самое. мой анализатор работает сейчас. но дело в том, что я получаю ошибку -lgcc не найден .... что это? –

+0

Не знаю, что из-за этого, но после того, как много фотов на следующих дополнительных настройках конфигурации, похоже, работает на меня, прекращая эту ошибку: – creednmd

+0

RUN_CLANG_STATIC_ANALYZER = NO GCC_VERSION = com.apple.compilers.llvm.clang.1_0.analyzer SDKROOT = iphonesimulator4.1 OTHER_CFLAGS = -D__IPHONE_OS_VERSION_MIN_REQUIRED = 040100 – creednmd

0

Принятый ответ уже не работает (Xcode 4)

Формат файла сборка Xcode означает, что вы должны сделать это следующим образом:

WARNING_CFLAGS = "-Xanalyzer -analyzer-check-llvm-conventions -analyzer-check-objc-missing-dealloc" 

NB: котировки, окружающие всю XAnalyzer фразу.

Смежные вопросы