makefile文件内容如下:

CC = gcc
CFLAGS = -Wall

all: main_test

main_test: main_test.o add_int.o add_float.o sub_int.o sub_float.o
	$(CC) $(CFLAGS) -o $@ $^

main_test.o: main_test.c add.h sub.h
	$(CC) $(CFLAGS) -c main_test.c

add_int.o: add_int.c add.h
	$(CC) $(CFLAGS) -c add_int.c

add_float.o: add_float.c add.h
	$(CC) $(CFLAGS) -c add_float.c

sub_int.o: sub_int.c sub.h
	$(CC) $(CFLAGS) -c sub_int.c

sub_float.o: sub_float.c sub.h
	$(CC) $(CFLAGS) -c sub_float.c

clean:
	rm -f *.o main_test

在终端中执行make命令后,会先检查所有依赖项是否最新,如果有依赖项不是最新的,则会重新编译这些依赖项,最后重新链接生成可执行文件main_test。

如果修改了main_test.c里的变量值,再次执行make命令,会重新编译main_test.o,因为它依赖于main_test.c。其他源文件不会重新编译,因为它们的依赖项没有改变。

问题:makefile文件中的CFLAGS变量是用来做什么的?

答:CFLAGS变量用来指定编译器的参数,例如-Wall表示开启所有警告信息。在编译时,make会将CFLAGS的值传递给编译器

本题共包含七个源文件:主函数main_testc、加法头函数addh、int类型加法函数add_intc、float类型加法函数add_floatc、减法头函数subh、int类型减法函数sub_intc、float类型减法函数sub_floatc。请编辑makefile文件来完成对该程序的编译功能。然后修改主函数main_testc里的x y a b的值再次执行make命令观察哪些程序被重新编

原文地址: https://www.cveoy.top/t/topic/eEwk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录