C++ 如何使用clang++;带-std=c++;11-Weverything-Werror
我想编译以下文件(temp.cpp):C++ 如何使用clang++;带-std=c++;11-Weverything-Werror,c++,c++11,compilation,clang,compiler-warnings,C++,C++11,Compilation,Clang,Compiler Warnings,我想编译以下文件(temp.cpp): #包括 福班{ 公众: Foo()=默认值; }; int main(){ 实际上,你可能不想要所有的警告,因为许多警告可能被认为是风格上的或主观的,而其他警告(比如你遇到的那一个)在你的情况下只是愚蠢的 -Weverything最初构建有两个原因: 发现:否则很难获得所有可用警告的列表 黑名单备选方案:使用gcc,您可以选择您希望应用的警告(白名单),使用-Weverything您可以选择您不希望应用的警告;优点是,当转到新版本的编译器时,您更有可能从
#包括
福班{
公众:
Foo()=默认值;
};
int main(){
实际上,你可能不想要所有的警告,因为许多警告可能被认为是风格上的或主观的,而其他警告(比如你遇到的那一个)在你的情况下只是愚蠢的
-Weverything
最初构建有两个原因:
- 发现:否则很难获得所有可用警告的列表
- 黑名单备选方案:使用gcc,您可以选择您希望应用的警告(白名单),使用
-Weverything
您可以选择您不希望应用的警告;优点是,当转到新版本的编译器时,您更有可能从新的警告中获益
显然,发现与生产使用并不真正兼容;因此,您似乎属于黑名单
Clang diagnostics系统将输出(默认情况下)负责生成警告的最具体警告组的名称(此处为-Wc++98 compat
),并且可以通过在-W
之后添加否-
关闭每个警告组
因此,对于黑名单,您可以得到:
-Weverything -Wno-c++98-compat -Wno-...
我们鼓励您不时修改黑名单警告列表(例如,当您升级到较新的编译器时).添加-Wno-c++98 compat
,但我不知道是否有通用的方法。@Mat能否请您将此作为answear发布,以便我可以接受。Weverything
启用所有警告,它与c++98无关,请尝试-Wall
和/或-Wextra
,我不知道这是否足以产生警告“c++11 compatible flag for-Weverything”正如您所要求的。我想要所有不反对c++11的警告。因此我想要所有的警告。仅使用墙不是一个选项。另外-Wno-c++98 compat pedantic,假设您足够幸运能够使用GCC\u WARN\u pedantic=是。
-Weverything -Wno-c++98-compat -Wno-...