做助教,改作业时,有时需要一个个测试学生的作业。
因此需要编译每一个学生的程序。如果一个个命令敲下去会让人抓狂。用shell命令虽然也可以,但是太长了,执行时也不简洁。于是写了个四行的makefile,可以编译所有程序了。
SOURCE=$(wildcard *.c )
OBJS=$(patsubst %.c,%,$(SOURCE))
CC:=gcc
all: $(OBJS)
执行结果如下
root@node1:~/cpubound# make
gcc main2.c -o main2
gcc main.c -o main
root@node1:~/cpubound# ls
cpubound main main2 main2.c main.c Makefile
每一个c语言文件直接生成对于的执行程序。当然,如果要严格些,可以让其生成对于的.o文件,然后编译链接。不过学生作业可以不用那么拘束了。