我试图将 scan-build 与 cmake 一起使用。紧随scan-build make
其后scan-build cmake
。但是当使用 scan-build 时,它将 CXX 编译器识别为 GNU 9.1.0。但是如果我们不使用 scan-build 它会正确地将 CXX 识别为 clang。由于 CXX 编译器标识为 GNU 9.1.0,因此检查 clang 中的某些诊断标志(例如Wunreachable_code_break, Werror_range_loop_analysis
)失败。
输出,同时使用扫描构建:
scan-build: Using '../clang/9.0.0/bin/clang-9' for static analysis
-- The CXX compiler identification is GNU 9.1.0
-- Check for working CXX compiler: ../clang/9.0.0/libexec/c++-analyzer
-- Check for working CXX compiler: ../clang/9.0.0/libexec/c++-analyzer -- works
输出,没有扫描构建:
-- The CXX compiler identification is Clang 9.0.0
-- Check for working CXX compiler: ../clang/9.0.0/bin/clang++
-- Check for working CXX compiler: ../clang/9.0.0/bin/clang++ -- works
如何确保 scan-build 必须将 clang 识别为 CXX 编译器?