做助教,改作業時,有時需要一個個測試學生的作業。
因此需要編譯每一個學生的程序。如果一個個命令敲下去會讓人抓狂。用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文件,然後編譯鏈接。不過學生作業可以不用那麼拘束了。