标签:exec else 删除 第一个 最好 目录 lin 简单 判断
前提: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 .*
是用来删除那些隐藏文件的,这个指令要特别小心,因为配置文件也是隐藏文件。main:$(src)
默认自动生成可执行文件,效果等同$(CC) -o $(basename $(src)) $(src)
标签:exec else 删除 第一个 最好 目录 lin 简单 判断
原文地址:https://www.cnblogs.com/friedCoder/p/12242451.html