Я пытался использовать 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?