kyl*_*awl 17 pragma clang suppress-warnings
警告:#pragma在主文件中一次
我们通过clang运行我们的标题以获得部分AST.
是否可以禁用该警告?
当我不小心将头文件包含在编译源中时,我遇到了这个问题(此头的行号为#pragma)。要修复此从编译源中删除的标头(可能您需要将其替换为.cpp文件)
没有-W“#pragma Once in main file”选项,因此您无法通过通常的方式将其关闭。(然而,Clang 开发人员非常清楚,没有-W选项的警告很糟糕,并且有一个一般规则,新的警告总是有-W选项。不幸的是,清理旧代码只是留给沮丧的用户的练习。)
如果你不介意 shell hacky,你总是可以这样做:
# This gives the warning...
clang -c myheader.h
# ...This doesn't.
echo '#include "myheader.h"' | clang -c -x c++-header -o myheader.h.gch -
Run Code Online (Sandbox Code Playgroud)
-像往常一样,尾随的表示“从标准输入读取”。告诉Clang 你正在使用什么语言(因为当没有-x c++文件时它无法从文件扩展名中看出),而更改为意味着我们想要生成 .gch 文件而不是 .o 文件。c++c++-header
.gch由此生成的两个文件并非逐位相同。我对 gch 文件了解不够,无法告诉您它们的行为可能有哪些明显不同。然而,由于您关心的只是 Clang 的 AST,所以我打赌您会满意的。:)
| 归档时间: |
|
| 查看次数: |
14257 次 |
| 最近记录: |