clean: rm -rf $(basename $(TARGET)) $(SRCS:.c=.o)[user@13:14 src]$ make执行下,结果怎么样呢: [objc] view plain copy[user@13:35 src]$make //编译了myhello.c,自动处理了头文件abc.h test.h的包含关系 gcc -c -I. -Icommon/ -Icommon/test -Wall myhello.c -o myhello.o gcc ...
“-n” “--just-print” “--dry-run” “--recon” 不执行参数,这些参数只是打印命令,不管目标是否更新,把规则和连带规则下的命令打印出来,但不执行,这些参数对于我们调试makefile很有用处。 7.4make的参数 点击小标题。 八、隐含规则 8.1 C语言编译的隐含规则 “<n>;.o”的目标的依赖目标会自动推导为“...
SRCS := main.c file1.c file2.c # 生成目标文件 OBJS := $(SRCS:.c=.o) # 默认目标 all: $(TARGET) # 生成可执行文件 $(TARGET): $(OBJS) $(CC) $(CFLAGS) -o $@ $^ # 生成目标文件 %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # 清理目标文件和可执行文件 clean: rm -f $...
Makefile文件用于管理C语言项目的编译和构建。Makefile包含了一系列规则和命令,用于自动化编译和链接过程。 具体解释如下: CC=gcc:定义一个变量CC,赋值为gcc,表示编译器使用gcc。 CFLAGS=-Wall -Werror -Wvla -O0 -std=c11 -g -fsanitize=address,leak:定义一个变量CFLAGS,赋值为一些编译选项,包括开启所有警告...
#生成main.omain.o:main.c add/add.h sub/sub.h gcc-c -o main.o main.c -Iadd -Isub #清理命令 clean: rm-f test add/add_int.o add/add_float.o sub/sub_int.o sub/sub_float.o main.o 执行方法: make 项目名 执行clean命令
gcc -c xyz.c -o xyz.o -g .PHONY:clean clean: rm main main.o abc.o xyz.o -f 3. Makefile书写规则 规则包含两个部分,一个是==依赖关系==,一个是==生成目标的方法==。 在Makefile中,规则的顺序是很重要的,因为,**==Makefile中只应该有一个最终目标==,其它的目标都是被这个目标所连带出来...
列如在子目录subdir目录下有个Makefile文件,来指明这个目录下文件的编译规则。外部总Makefile可以这样写subsystem: cd subdir && $(MAKE) 其等价于: subsystem: $(MAKE) -C subdir 定义$(MAKE)宏变量的意思是,也许我们的make需要一些参数,所以定义成一个变量比较有利于维护。两个例子意思都是先进入"subdir"目录...
gcc-o calc main.c getch.c getop.c stack.c 现在你看到的就是一个最基本的Makefile语句,它主要分成了三个部分,第一行冒号之前的calc,我们称之为目标(target),被认为是这条语句所要处理的对象,具体到这里就是我们所要编译的这个程序calc。冒号后面的部分(main.c getch.c getop.c stack.c),我们称之为依...