我希望对特定包含文件直接或间接包含的所有文件禁用特定警告。例如,我想对 #include <bar/*>
中包含的所有文件或文件中包含的文件禁用警告“您正在将字符串文字分配给 char*”。 (在我的例子中,星星的意思是“任何东西都可能在这里”)。
原因是,我必须与之一起编程的一些人不能使用“const”,所以最后我收到了很多关于特定字符串文字滥用的警告。我想忽略来自他们代码的数千条警告,这样我就可以专注于自己代码中的错误并修复它们。
我使用英特尔 C++ 和 GCC。我的一些 friend 使用clang,所以我也很高兴听到解决方案。
最佳答案
使用 GCC 时,您可以使用 -isystem
标志而不是 -I
标志来禁用来自该位置的警告。
所以如果你目前正在使用
gcc -Iparent/path/of/bar …
使用
gcc -isystem parent/path/of/bar …
相反。不幸的是,这不是一个特别细粒度的控制。我不知道更有针对性的机制。
关于c++ - 如何禁用特定包含文件的警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6321839/