我正在使用Xcode 3.2.4并设置Clang Static Analyzer功能以使用更新的二进制版本,详见此处:http://clang-analyzer.llvm.org/xcode.html
(基本上使用 set-xcode-analyzer 命令行实用程序来更改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使用时,如何将额外选项传递给二进制文件?
答案 0 :(得分:7)
经过进一步调查,似乎最好的方法是在目标构建信息中使用一些条目,而不是 set-xcode-analyzer 命令行工具。
添加用户定义的设置 CC ,其中包含二进制文件较新版本的完整路径,如下所示(请注意 / bin / clang 上的路径的尽头):
CC = /Path/To/Folder/With/Clang/checker-244/bin/clang
然后在其他警告标志条目中添加任意数量的附加检查,如下所示:
WARNING_CFLAGS = -Xanalyzer -analyzer-check-llvm-conventions -Xanalyzer -analyzer-check-objc-missing-dealloc
每个都以参数 -Xanalyzer 开头,表示下一个参数应该传递给分析器。
有关详细信息,请访问:Mac OS X Developer Tools Manual Page。
然后,当您在Xcode中执行 Build and Analyze 时,您应该使用运行其他检查的外部更新的二进制文件。
答案 1 :(得分:1)
接受的答案不再有效(Xcode 4)
Xcode构建文件的格式意味着您必须这样做:
WARNING_CFLAGS = "-Xanalyzer -analyzer-check-llvm-conventions -analyzer-check-objc-missing-dealloc"
注意:围绕整个XAnalyzer短语的引号。