码迷,mamicode.com
首页 > 其他好文 > 详细

刷POJ时搭配使用的makefile

时间:2020-01-30 12:49:55      阅读:69      评论:0      收藏:0      [点我收藏+]

标签: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涉及的语法

  1. ifeq ($(src),) 判断变量src是否为空,ifdef src则判断是否有定义src。
  2. rm .* 是用来删除那些隐藏文件的,这个指令要特别小心,因为配置文件也是隐藏文件。
  3. 默认执行第一个target all
  4. main:$(src)默认自动生成可执行文件,效果等同$(CC) -o $(basename $(src)) $(src)

刷POJ时搭配使用的makefile

标签:exec   else   删除   第一个   最好   目录   lin   简单   判断   

原文地址:https://www.cnblogs.com/friedCoder/p/12242451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!