首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clang++编译可执行文件,但是check无法找到std标头。

clang++编译可执行文件,但是check无法找到std标头。
EN

Stack Overflow用户
提问于 2021-02-11 00:43:58
回答 1查看 211关注 0票数 0

我有一个测试cmake C++应用程序,我可以在Ubuntu20.04上用clang++-10成功编译(用所有的CMAKE_USER_MAKE_RULES_OVERRIDE机器)。

cmake项目的布局如下:

代码语言:javascript
复制
./test.cpp
./CMakeLists.txt
./build

我还创建了内置CMAKE_EXPORT_COMPILE_COMMANDS的build数据库json文件./build (这个json文件对于clang操作AFAIU是必需的)。

现在,从build启动,检查调用失败:

代码语言:javascript
复制
clang-check-10 --analyze  ../test.cpp
<projDir>/test.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
     ^~~~~~~~~~
1 error generated.
Error while processing <projDir>/test.cpp.

有什么办法解决这个问题吗?

编辑:也尝试将-p=$(pwd)指定为check,但仍然找不到标头。

EN

回答 1

Stack Overflow用户

发布于 2021-02-15 07:45:03

clang不是编译器。它用于检查AST中的错误,在这种情况下,它无法在代码中找到系统标头。在行尾加上“--”来忽略它。

代码语言:javascript
复制
clang-check-10 --analyze  ../test.cpp

有关更多信息:LLVM上的ClangCheck

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66147245

复制
相关文章

相似问题

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