首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用scan-build在不同目标上运行clang静态分析器

如何使用scan-build在不同目标上运行clang静态分析器
EN

Stack Overflow用户
提问于 2016-09-14 21:40:33
回答 1查看 873关注 0票数 1

我想在不同的目标上运行clang静态分析器。这是makefile片段:

代码语言:javascript
复制
CC = <path to clang folder>/build/bin/clang
.
.
.    
src/%.o: ../src/%.c
    ${CC} --target=powerpc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"

我正在尝试编译成powerpc。以下是命令行和输出:

代码语言:javascript
复制
>> <path_to_llvm_folder>/llvm/tools/clang/tools/scan-build/scan-build --use-analyzer=<path_to_llvm_folder>/build/bin/clang make
scan-build: Using '<path_to_llvm_folder>/build/bin/clang' for static analysis
Building file: ../src/testing.c
Invoking: GCC C Compiler
<path to clang folder>/llvm/tools/clang/tools/scan-build/ccc-analyzer --target=powerpc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/testing.d" -MT"src/testing.o" -o "src/testing.o" "../src/testing.c"
cc1: warning: command line option "-ftarget=powerpc" is valid for Java but not for C

请注意,尽管makefile调用的是clang -I获取的是gcc的warning...So,但我如何使用clang编译代码并针对不同的目标进行静态分析?

EN

回答 1

Stack Overflow用户

发布于 2016-09-15 17:59:08

找到了解决方案。我认为下一个参数中的ccc-analyzer脚本中有一个bug:

代码语言:javascript
复制
my %CompilerLinkerOptionMap = (
  '-Wwrite-strings' => 0,
  '-ftrapv-handler' => 1, # specifically call out separated -f flag
  '-mios-simulator-version-min' => 0, # This really has 1 argument, but always has '='
  '-isysroot' => 1,
  '-arch' => 1,
  '-m32' => 0,
  '-m64' => 0,
  '-stdlib' => 0, # This is really a 1 argument, but always has '='
  '--sysroot' => 1,
  '-target' => 1,
  '-v' => 0,
  '-mmacosx-version-min' => 0, # This is really a 1 argument, but always has '='
  '-miphoneos-version-min' => 0 # This is really a 1 argument, but always has '='
);

这个

代码语言:javascript
复制
'-target' => 1,

需要的是

代码语言:javascript
复制
'--target' => 1,

(带有两个'-')...

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

https://stackoverflow.com/questions/39492030

复制
相关文章

相似问题

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