我试着用cmake进行扫描构建。跟踪scan-build make之后的scan-build cmake。但是当使用扫描编译时,它将CXX编译器标识为GNU 9.1.0。但是如果我们不使用扫描-正确地构建它,识别CXX作为clang。由于CXX编译器被识别为GNU9.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如何确保扫描生成必须将clang识别为CXX编译器?
发布于 2019-10-24 11:56:28
读取手册
该脚本使用简单的启发式方法来确定应该使用哪个编译器(在达尔文上默认为clang,在其他平台上默认为clang)。
..。
扫描编译提供了--使用-cc和--使用-c++选项,编译器扫描编译应该使用这些选项来构建代码.
您需要更改CMake配置,以便对扫描生成的调用看起来像.
scan-build --use-c++ ${CMAKE_CXX_COMPILER} ...https://stackoverflow.com/questions/58540586
复制相似问题