将 clang 警告限制在我的源文件中
Restricting clang warnings to my source files
我正在使用 C 中的库使用 clang 编译程序。我想检查我的程序是否有错误 (-Wall -Weverything
) 但我不想检查库。有没有办法将 clang 的警告限制在我的源文件中?
如果库 header 文件在您包含它时生成大量警告,您可以尝试使用一些间接方法(还有什么)来解决。
因此,对于名为 lib_a.h
的库 header,创建一个如下所示的包装器 (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
现在包含它而不是直接包含库 header。
那些 pragams 将仅关闭该特定库的警告 header。
您当然可以添加对其他 tool-chains 的支持,甚至可以使此实用程序 header 成为您程序中所有有问题的 header 的入口点。预编译它可以忽略开销。
我正在使用 C 中的库使用 clang 编译程序。我想检查我的程序是否有错误 (-Wall -Weverything
) 但我不想检查库。有没有办法将 clang 的警告限制在我的源文件中?
如果库 header 文件在您包含它时生成大量警告,您可以尝试使用一些间接方法(还有什么)来解决。
因此,对于名为 lib_a.h
的库 header,创建一个如下所示的包装器 (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
现在包含它而不是直接包含库 header。
那些 pragams 将仅关闭该特定库的警告 header。
您当然可以添加对其他 tool-chains 的支持,甚至可以使此实用程序 header 成为您程序中所有有问题的 header 的入口点。预编译它可以忽略开销。