首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clang scan-build不适用于Xcode 4.2 LLVM 3.0构建配置

Clang scan-build不适用于Xcode 4.2 LLVM 3.0构建配置
EN

Stack Overflow用户
提问于 2011-10-19 18:40:05
回答 3查看 3.5K关注 0票数 2

我已经安装了Xcode4.2最终版,以便能够为iOS 5编译。

我们使用Jenkins作为CI,并从llvm.org项目页面运行Clang scan-build。(版本258)该项目配置为使用LLVM 3.0 (从Xcode 4.2开始是默认的)。现在,每次我尝试运行scan-build时,是否得到以下错误:

代码语言:javascript
复制
CompileC build/Cortado.build/Debug-iphonesimulator/Cortado.build/Objects-normal/i386/TPContentDetailViewController_iPad.o Classes/iPad/TPContentDetailViewController_iPad.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    cd "/Volumes/Sources/Starteam - Main View/Workplace/Cortado"
    setenv LANG en_US.US-ASCII
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/Applications/android-sdk-mac_x86/android-ndk-r6b:/Applications/android-sdk-mac_x86/platform-tools:/Applications/android-sdk-mac_x86/tools:/Volumes/Sources/Starteam - Main View/Tools:/Volumes/Sources/Tools:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
    /Users/thwee/Downloads/checker-258/libexec/ccc-analyzer -x objective-c -arch i386 -fmessage-length=0 -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -DDEBUG -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -fexceptions -fasm-blocks -fprofile-arcs -ftest-coverage -mmacosx-version-min=10.6 -gdwarf-2 -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -D__IPHONE_OS_VERSION_MIN_REQUIRED=40100 -iquote "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-generated-files.hmap" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-own-target-headers.hmap" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-all-target-headers.hmap" -iquote "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-project-headers.hmap" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Debug-iphonesimulator/include" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/DerivedSources/i386" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/DerivedSources" "-F/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Debug-iphonesimulator" -include "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/Cortado_Prefix.pch" -MMD -MT dependencies -MF "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Objects-normal/i386/TPContentDetailViewController_iPad.d" -c "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/Classes/iPad/TPContentDetailViewController_iPad.m" -o "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Objects-normal/i386/TPContentDetailViewController_iPad.o"
cc1obj: error: unrecognized command line option "-Wno-sign-conversion"
cc1obj: error: unrecognized command line option "-fdiagnostics-print-source-range-info"
cc1obj: error: unrecognized command line option "-fdiagnostics-show-category=id"
cc1obj: error: unrecognized command line option "-fdiagnostics-parseable-fixits"

如果我使用Xcode self的静态代码分析器,我会得到以下输出,没有问题:

代码语言:javascript
复制
CompileC build/Cortado.build/Debug-iphonesimulator/Cortado.build/Objects-normal/i386/TPInfoCell.o Classes/TPInfoCell.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    cd "/Volumes/Sources/Starteam - Main View/Workplace/Cortado"
    setenv LANG en_US.US-ASCII
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -x objective-c -arch i386 -fmessage-length=0 -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -DDEBUG -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -fexceptions -fasm-blocks -fprofile-arcs -ftest-coverage -mmacosx-version-min=10.6 -gdwarf-2 -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -D__IPHONE_OS_VERSION_MIN_REQUIRED=40100 -iquote "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-generated-files.hmap" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-own-target-headers.hmap" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-all-target-headers.hmap" -iquote "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Cortado-project-headers.hmap" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Debug-iphonesimulator/include" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/DerivedSources/i386" "-I/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/DerivedSources" "-F/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Debug-iphonesimulator" -include /var/folders/m7/1lwxj7113xb17b8k635bn0200000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/Cortado_Prefix-curmpedgpezkvsgarfuwvmdrauwa/Cortado_Prefix.pch -MMD -MT dependencies -MF "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Objects-normal/i386/TPInfoCell.d" -c "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/Classes/TPInfoCell.m" -o "/Volumes/Sources/Starteam - Main View/Workplace/Cortado/build/Cortado.build/Debug-iphonesimulator/Cortado.build/Objects-normal/i386/TPInfoCell.o"

有没有人知道我可以做些什么来让scan-build再次运行而不禁用LLVM3.0的使用?!

EN

回答 3

Stack Overflow用户

发布于 2011-11-17 19:26:38

找到了让checker-258构建的解决方案:

将此参数传递给scan-build:--use-cc=which clang

然后用jenkins和scan-build插件来构建...这有点棘手:

将scan-build移动到scan-build.bin,然后将scan-build作为脚本:

代码语言:javascript
复制
#!/bin/sh

dir=$(dirname $0)
$dir/scan-build.bin --use-cc=`which clang` $@

clang的结果是:/usr/bin/ which clang

编辑:参与了两个项目,一个使用LLVM 3.0,另一个使用llvm-gcc4.2。

票数 5
EN

Stack Overflow用户

发布于 2012-01-28 05:26:53

我向苹果提出了一个关于这个和其他问题的bug (比如扫描-构建不能识别ARC的代码)。

修复方法是安装checker-260,请参阅http://clang-analyzer.llvm.org/release_notes.html加上对ccc-analyzer - http://llvm.org/viewvc/llvm-project?view=rev&revision=149094的修改。希望ccc分析器的修复将被合并到扫描构建的未来版本中。

使用此最新版本的scan-build将避免您必须对上一个答案中描述的scan-build进行修改。

票数 1
EN

Stack Overflow用户

发布于 2011-10-20 05:41:06

看起来scan-build决定使用llvm- which,这让Xcode感到困惑,因为它期望运行clang。可能只是scan-build中的一个bug;我建议发送一封电子邮件到cfe-dev。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7820011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档