将clang警告限制为我的源文件

时间:2017-03-19 06:45:30

标签: c clang c89

我正在使用clang在C中使用库编译程序。我想检查我的程序是否有错误(-Wall -Weverything),但我不想查看库。有没有办法将clang的警告限制在我的源文件中?

1 个答案:

答案 0 :(得分:2)

如果库头文件在包含它时会生成大量警告,您可以尝试通过使用一些间接(或其他)来解决。

因此,对于名为lib_a.h的库头,创建一个如下所示的包装器(my_lib_a.h):

#ifdef __clang__
#  pragma clang diagnostic push
#  pragma clang diagnostic ignored "-Weverything"
#endif

#include "lib_a.h"

#ifdef __clang__
#  pragma clang diagnostic pop
#endif

现在包含它而不是直接包含库标题。

那些pragams将仅关闭该特定库标题的警告。

您当然可以添加对其他工具链的支持,甚至可以将此实用程序标题作为程序中所有有问题标题的入口点。预编译它会使开销可以忽略不计。