我有一个使用SCons构建的项目,我正在尝试使用Clang Static Analyzer来分析代码。但是,在运行时
scan-build scons
SCons似乎忽略了scan-build
引入的设置。我怎样才能做到这一点?
答案 0 :(得分:28)
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_"))