首页 > 解决方案 > 在 make 文件中忽略 c11 标志

问题描述

我尝试使用 c11 模式编译我的代码。这是我的制作文件:

obj-m := message_slot.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
CFLAGS=-g -std=c11 -Wall -pedantic

all:
    $(MAKE) -C $(KDIR) M=$(PWD) modules


clean:
    $(MAKE) -C $(KDIR) M=$(PWD) clean

在编译过程中由于某种原因,编译器仍然尝试使用 c90 编译代码。有谁明白为什么?

/home/eran/CLionProjects/tau_os_ex3/message_slot.c:29:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]

标签: makefilecompilation

解决方案


CXXFLAGS传达 C++ 的构建标志,但错误消息表明您正在尝试构建 C 源代码。C 编译器标志进入CFLAGS.


推荐阅读