我无法理解Contiki-os'原生平台的makefile中的以下代码。
NM ?= nm
OBJCOPY ?= objcopy
STRIP ?= strip
ifdef WERROR
CFLAGSWERROR=-Werror -pedantic -std=c99 -Werror
endif
CFLAGSNO = -Wall -g -I/usr/local/include $(CFLAGSWERROR)
CFLAGS += $(CFLAGSNO) -O
来源:https://github.com/contiki-os/contiki/blob/master/cpu/native/Makefile.native#L13-20
这不是我不理解的变量赋值,我的问题是什么是'WERROR'以及它与'CFLAGS'有什么关系?NM是指什么? CC指编译器,LD指链接器。
如果有人可以帮助我,那就太棒了。
答案 0 :(得分:1)
如果定义了WERROR,则make文件会为编译添加选项,以便将警告视为错误。据推测,在某些时候某些东西将定义WERROR = 1触发更严格的构建。 CFLAGS将用于将源代码编译为目标代码的规则中。
来自:http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_7.html
编译C程序:
n.o是从n.c自动生成的,其形式为'$(CC)$(CPPFLAGS)$(CFLAGS)-c'。