【问题标题】:regarding CFLAGS setting in Linux kernel?关于 Linux 内核中的 CFLAGS 设置?
【发布时间】:2016-01-14 08:12:37
【问题描述】:

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

no previous prototype for 'foo' [-Werror=missing-prototypes]

用于编译内核的命令:

 make -C kernel ARCH=arm CROSS_COMPILE=arm-eabi- 

我尝试了以下命令但没有工作

make ARCH=arm CROSS_COMPILE=arm-eabi- CFLAGS=-Wno-error

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

我知道设置 -Werror 并修复问题非常好,但现在我想知道如何将 CFLAGS 设置为 -Wno-error。

任何帮助将不胜感激。

【问题讨论】:

  • 我猜你的意思是CROSS_COMPILE=arm-eabi-,而不是CROSS_COMPILE=arm=eabi-(注意arm和eabi之间的=)。
  • @LucaCeresoli 感谢更新的问题。

标签: linux compilation linux-kernel cross-compiling gcc-warning


【解决方案1】:

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

ccflags-foo.o := -Wno-error

或

ccflags-y := -Wno-error

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

但我会改正你的错误,而不是关闭编译器。

【讨论】:

  • 谢谢,但是如何在环境中设置它们或从 make 命令行提供?
  • 这并没有回答如何从命令行设置它的问题。我假设你需要通过 make ARCH=arm CROSS_COMPILE=arm-eabi- ccflags-y=-Wno-error
猜你喜欢
  • 2013-08-30
  • 2012-11-19
  • 1970-01-01
  • 2016-03-19
  • 2014-06-27
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
相关资源
最近更新 更多