2010-07-21 60 views
2

我使用的Xcode 3.2.4,并已经设置了锵静态分析器功能使用的二进制文件的更新版本,因为这里详细:http://clang-analyzer.llvm.org/xcode.html使用外部的Xcode锵静态分析器二进制,额外的检查

(基本上使用设置的Xcode分析仪命令行实用程序更改静态分析仪,其复制的Xcode用来建立与分析

我想不通的是如何设置的二进制使用额外的检查,例如通过Xcode使用二进制文件时的-analyzer-check-objc-missing-dealloc,详情如下: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

经过进一步调查,似乎最好的方法是使用Target Build Info中的几个条目,而不是使用命令行工具set-xcode-analyzer

添加用户定义的设置,CC,包含全路径二进制的较新版本,如下(请注意,在路径的末端的/bin中/铛):

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

然后在等警示标志,只要你想条目添加尽可能多的额外的检查,具体如下:

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

每个是PREC由参数-Xanalyzer决定,它指示应将下一个参数传递给分析器。

关于这方面的更多信息可以在这里找到:Mac OS X Developer Tools Manual Page

然后,当您在Xcode中执行Build和Analyze时,您应该使用运行额外检查的外部较新的二进制文件。

+0

我做了同样的事情。我的分析仪正在工作。但事情是我得到一个错误-lgcc没有找到....这是什么? – 2010-08-21 05:23:30

+0

不知道是什么原因导致它,但经过大量的绕过以下额外的配置设置似乎为我工作,停止出现错误: – creednmd 2010-09-09 23:41:59

+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 2010-09-09 23:43:14

0

接受的答案不再有效(的Xcode 4)

Xcode的构建文件的格式意味着你必须做这样的:

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

NB:围绕整个XAnalyzer短语的报价。