首页 > 解决方案 > 为使用 makefile 执行 ac 代码提供 scanf 输入字符串

问题描述

我正在尝试编写我的第一个 makefile 来完全自动化我的代码执行。我有一个必须执行多次的 c 代码(BootstrapCL.c);对于每次执行,我应该输入(我在 c 代码中有 2 个 scanf)一个文件名(带和不带扩展名)。我必须对文件夹内的所有文件(比如一组 cvs 文件)重复此操作。

这是我的makefile

SRCS := $(wildcard *.csv)
BINS := $(SRCS:%.csv=%)

all: ${BINS}

%: BootstrapCL.c
    gcc -Wall BootstrapCL.c  -lm -o BootstrapCL
    ./BootstrapCL 
    $@.csv 
    $@

问题是当makefile到达该行时: ./BootstrapCL shell等待输入,因此我无法到达下一行以通过makefile本身提供此输入。我怎样才能解决这个问题并获得一个自动化的过程?

标签: cshellinputmakefilescanf

解决方案


管道输入到程序。

%: BootstrapCL.c
    gcc -Wall BootstrapCL.c  -lm -o BootstrapCL
    (echo $@.csv ; echo $@) | ./BootstrapCL 

推荐阅读