关于Linux内核中的CFLAGS设置?

Pra*_*ami 4 linux compilation cross-compiling linux-kernel gcc-warning

编译 Linux 内核时出现以下错误:

no previous prototype for 'foo' [-Werror=missing-prototypes]
Run Code Online (Sandbox Code Playgroud)

编译内核的命令:

 make -C kernel ARCH=arm CROSS_COMPILE=arm-eabi- 
Run Code Online (Sandbox Code Playgroud)

我尝试执行以下命令但不起作用

make ARCH=arm CROSS_COMPILE=arm-eabi- CFLAGS=-Wno-error
Run Code Online (Sandbox Code Playgroud)

所以我想知道如何从目录 make 命令将 CFLAGS 设置为 Linux 内核中的 -Wno-error 。

我知道设置 -Werror 并解决问题是件好事,但现在我想知道如何将 CFLAGS 设置为 -Wno-error。

任何帮助将不胜感激。

Ole*_*huk 5

您可以使用ccflags-module_nameccflags-y进行全局设置:

ccflags-foo.o := -Wno-error
Run Code Online (Sandbox Code Playgroud)

或者

ccflags-y := -Wno-error
Run Code Online (Sandbox Code Playgroud)

作为替代方案,您可以使用KBUILD_CFLAGS环境变量。

但我会修复你的错误而不是关闭编译器。

  • 这并没有回答如何从命令行设置它的问题。我假设您需要通过 make ARCH=arm CROSS_COMPILE=arm-eabi- ccflags-y=-Wno-error (3认同)