请教:给定Makefile中的INC变量具体用途是什么?
MF= Makefile_c #Makefile文件名 CC= cc #使用的编译器 CFLAGS= -g #编译标志 LFLAGS= -lm #链接阶段使用的标志 EXE= hello #可执行文件名称 INC= \ # ??? 该变量的用途是什么???? # 当前无自定义头文件,如有需求可在此列出 # 源文件名 SRC= \ hello.c # 删除默认后缀 .SUFFIXES: # 定义目标后缀 .SUFFIXES: .c .o OBJ= $(SRC:.c=.o) # 用于生成目标文件名称
关于Makefile中
INC变量的说明 嘿,我来给你拆解这个INC变量的作用:
- 本质作用:
INC是Makefile里的常规预留变量,专门用来存放自定义头文件的搜索路径。 - 当前状态:你的这个Makefile里它是空的(后面的反斜杠是用来换行延续变量定义的,但没跟上实际路径),因为注释里也提到“当前无自定义头文件”,所以暂时没发挥作用。
- 实际使用场景:
当你的项目里有自己编写的头文件,且这些头文件不在系统默认头文件目录(比如/usr/include),也不在当前编译的工作目录下时,就需要用它来指定路径。比如你的头文件都放在./my_headers目录下,就可以这样写:
然后把INC= -I./my_headersINC整合到编译标志里:
这样编译器在编译源文件时,就会自动去CFLAGS= -g $(INC)./my_headers目录里找你引用的自定义头文件了。 - 设计意义:提前预留这个变量,是为了后续项目扩展时更方便——以后加了自定义头文件,直接修改
INC就行,不用去翻找编译参数的位置,让Makefile结构更清晰易维护。
内容的提问来源于stack exchange,提问作者Clumsy cat
相关产品推荐
相关产品推荐

