首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clang扫描-将CXX编译器识别为GNU 9.1.0,而不是clang

Clang扫描-将CXX编译器识别为GNU 9.1.0,而不是clang
EN

Stack Overflow用户
提问于 2019-10-24 11:40:02
回答 1查看 232关注 0票数 0

我试着用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)中的一些诊断标志。

输出,同时使用扫描生成:

代码语言:javascript
复制
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

输出,无需扫描生成:

代码语言:javascript
复制
-- 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编译器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 11:56:28

读取手册

该脚本使用简单的启发式方法来确定应该使用哪个编译器(在达尔文上默认为clang,在其他平台上默认为clang)。

..。

扫描编译提供了--使用-cc和--使用-c++选项,编译器扫描编译应该使用这些选项来构建代码.

您需要更改CMake配置,以便对扫描生成的调用看起来像.

代码语言:javascript
复制
scan-build --use-c++ ${CMAKE_CXX_COMPILER} ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58540586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档