我正在使用clang在C中使用库编译程序。我想检查我的程序是否有错误(-Wall -Weverything
),但我不想查看库。有没有办法将clang的警告限制在我的源文件中?
答案 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将仅关闭该特定库标题的警告。
您当然可以添加对其他工具链的支持,甚至可以将此实用程序标题作为程序中所有有问题标题的入口点。预编译它会使开销可以忽略不计。