【问题标题】:How do I turn off warnings when compiling a kernel?编译内核时如何关闭警告?
【发布时间】:2024-01-06 16:05:01
【问题描述】:

我正在尝试使用 clang 编译一个 android 内核,但我收到了我不关心的警告。对于编译,我使用命令make -j3 CC=clang O=output,所以我不能像使用命令clang file.c 一样添加-Wno-everything 参数。据我了解,我可以通过将#pragma 添加到导致错误的文件中来禁用一些警告。但我也有一个奇怪的错误,它没有引用任何文件:

warning: unknown warning option '-Wno-vectorizer-no-neon' [-Wunknown-warning-option]

如何关闭所有警告?或者至少是这个。

PS:对不起我的英语。

【问题讨论】:

  • 大概-Wno-unknown-warning-option 会关闭有关未知选项的警告。但另一个问题是“为什么将未知的警告选项传递给编译器?” ——如果可以的话,解决这个问题是个好主意。通常,您想了解警告,尤其是在内核中,因为它们通常表示代码中的错误。但是,这则完全不同——如果您的代码没有使用它警告您缺少的功能,那么它对您或您的模块(内核)并不重要。
  • 您使用的确切编译器版本是什么?
  • 这取决于 Makefile,但通常您可以通过 CFLAGS 来添加额外的编译器参数:CFLAGS=-Wno-everything
  • @Thomas 谢谢,它看起来确实是一个解决方案,但我的 makefile 中有很多 CFLAGS)。看来我必须尝试一切:D
  • @Cheatah clang-r428724 (13.0.1)

标签: c compilation clang compiler-warnings pragma


【解决方案1】:

解决方案是将-Wno-everything 参数添加到Makefile 中的ARCH_CPPFLAGS 参数。

【讨论】: