21

我有一个用SCons构建的项目,我正在尝试使用Clang 静态分析器来分析代码。但是,运行时

scan-build scons

SCons 似乎忽略了scan-build. 我怎样才能使这项工作?

4

1 回答 1

30

工作方式scan-build是设置各种环境变量,这些环境变量通常由构建系统(例如make)用来控制构建的发生方式。其中一些是:

  • CC- 用作 C 编译器的程序名称
  • CXX- 用作 C++ 编译器的程序名称
  • CCC_*- 控制 Clang 的静态分析器行为的各种环境变量

SCons 通常会在运行构建之前清理环境(这是一项功能)。为了使上述环境变量生效,在SConstruct:

env = Environment()
env["CC"] = os.getenv("CC") or env["CC"]
env["CXX"] = os.getenv("CXX") or env["CXX"]
env["ENV"].update(x for x in os.environ.items() if x[0].startswith("CCC_"))
于 2012-02-16T04:05:21.607 回答