使用makefile运行程序数次
我真的是一个初学者,我想建立一个makefile,这样我以后可以运行一个程序多次。 e、 g.终端输入:闭合回路6使用makefile运行程序数次,makefile,while-loop,Makefile,While Loop,我真的是一个初学者,我想建立一个makefile,这样我以后可以运行一个程序多次。 e、 g.终端输入:闭合回路6 loop: $(BIN) terminalinput= $1 #e.g. the value 6 count=0 while [ $count -lt $terminalinput ]; do ./$(BIN) \ count=$((count+1)) done 我不知道如何获取终端输入并在while循环中构建它。我
loop: $(BIN)
terminalinput= $1 #e.g. the value 6
count=0
while [ $count -lt $terminalinput ]; do
./$(BIN) \
count=$((count+1))
done
我不知道如何获取终端输入并在while循环中构建它。我使用Ubuntu,希望有人能帮我
先谢谢你
make
变量,例如make loop LOOPS=10
Makefile
中使用ifdef
来确定变量是否已定义,例如:ifdef循环
循环:程序
对于((i=1;i我使用gmake,只需对ccorn的答案做一点修改(再次感谢您),因为我必须在makefile的第一行中编写SHELL:=/bin/bash
现在,当我在终端中写入makeloop l=5
时,程序运行5次。当我只写入makeloop
时,程序运行10次(默认值)
这是我的小测试生成文件:
SHELL := /bin/bash
BIN = stack
SRC = \
stacktest.c \
stack.c \
CC = gcc
CFLAGS = -g -Wall -Wextra -O3 -std=c99 -lm
OBJS = $(SRC:%.c=%.c)
all: $(BIN)
$(BIN): $(OBJS)
val: $(BIN)
valgrind ./$(BIN)
run: $(BIN)
./$(BIN)
l = 10
loop: $(BIN)
for ((i=1; i <= ${l}; ++i)) do ./$(BIN); done
SHELL:=/bin/bash
BIN=堆栈
SRC=\
stacktest.c\
堆栈.c\
CC=gcc
CFLAGS=-g-壁-Wextra-O3-std=c99-lm
OBJS=$(SRC:%.c=%.c)
全部:$(BIN)
$(BIN):$(OBJS)
val:$(BIN)
valgrind./$(箱)
运行:$(BIN)
./$(BIN)
l=10
循环:$(BIN)
对于((i=1;i)你为什么要用make做这件事?我想创建一个makefile模板,用于我的C程序。这样我就可以写“make-run=compile-and-run-the-program”,“make-val=compile-and-run-valgrind”,“make-loop 5=compile-and-run-the-program 5次”等等。我想用一个makefile来试试。谢谢你的帮助,我只修复了一个东西,它就成功了。真的很好的社区!@wurya:“事情”可能是运行prog
应该使用一个显式路径,比如/prog
。修复了。是的,用于(…)
语法是特定于bash的bash
。问题中的$(…)
构造也是如此,因此至少答案仍在该上下文中。