Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法理解makefile中的这段代码_Makefile_Contiki - Fatal编程技术网

无法理解makefile中的这段代码

无法理解makefile中的这段代码,makefile,contiki,Makefile,Contiki,我无法理解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 资料来源: 我不理解的

我无法理解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
资料来源:


我不理解的不是变量赋值,我的问题是什么是“WERROR”,它与“CFLAGS”有什么关系,NM指的是什么?CC表示编译器,LD表示链接器


如果有人能帮助我,那就太好了。

如果定义了WERROR,则make文件会向编译添加选项,以便将警告视为错误。想必,在某个时刻会有东西定义WERROR=1,从而触发更严格的构建。CFLAGS将用于将源代码编译成目标代码的规则中

发件人:

编译C程序:


n、 o是从n.c自动生成的,其配方为“$(CC)$(CPPFLAGS)$(CFLAGS)-c”。

您到底不明白什么?也许会有帮助。这不是可变任务,我的问题是什么是“WERROR”,它与“CFLAGS”有什么关系,NM指的是什么?CC指的是编译器,LD指的是链接器。这意味着什么:
CFLAGSWERROR=-Werror-pedantic-std=c99-Werror
do?您必须检查编译器参考以了解详细信息,但可能是-Werror告诉编译器将警告视为错误-学究式的告诉它要学究式,-std=c99是告诉它编译到c99标准,而额外的-werr可能是一个错误。如果定义了这些标志,它们将扩展为CFLAGSNO,而CFLAGS又被扩展为CFLAGS,这在make执行的默认编译规则中使用。