刷POJ时搭配使用的makefile
前提:linux系统、系统安装有make工具、最好还会一点makefile语法
在刷POJ的时候,每次测试一遍都要从新输入样例,再查看输出是否正确。重复的输入数据很费时间,于是将输入数据直接写入一个input文本内,
运用重定向的方法./main < input自动输入样本数据,大大节省时间。
下面是我的makefile文件
CC:=g++
src=
# DEST:= $(src:%.c=%)
ifeq ($(src),)
warning:
@echo "input src file first."
else
exec := $(src)
src := $(src:%=%.cpp)
input := $(src:%=%.input)
all: main
@./$(exec) < $(input)
main:$(src)
endif
clean:
rm *.cpp~ makefile~ *.input~ $(exec) .*
.PHNOY : clean all
使用方法:假设有源文件main.c,测试输入数据main.input,把makefile文件放在同一目录下,输入命令make src=main即可。
下面简单介绍一下这个makefile涉及的语法
ifeq ($(src),)判断变量src是否为空,ifdef src则判断是否有定义src。rm .*是用来删除那些隐藏文件的,这个指令要特别小心,因为配置文件也是隐藏文件。- 默认执行第一个target all
main:$(src)默认自动生成可执行文件,效果等同$(CC) -o $(basename $(src)) $(src)

浙公网安备 33010602011771号