如果我有一个将运行的代码,请将其命名为main.cpp
,可执行文件为r.exe
,然后我编写一个包含以下目标的makefile:
compile:
g++ -std=c++11 main.cpp -o r
可执行文件r.exe
采用两个参数i.txt
,o.txt
。如何向makefile添加第二个目标,以便我可以运行以下命令,并看到程序执行:
make run i.txt o.txt
我尝试在makefile中添加第二个目标:
run:
r.exe $1 $2
例如,但是make声明:“'r'是最新的”和“没有为'i.txt'做什么,......等等。”
我现在也尝试过搜索一段时间,但是'make','run'和'variables'或'arguments'基本上都是一个不相关内容的搜索防火墙。
答案 0 :(得分:5)
您无法将参数传递给make
。命令make run i.txt o.txt
将尝试构建规则run
,i.txt
和o.txt
。
您可以改为使用变量:
run:
r.exe ${ARGS}
make run ARGS="i.txt o.txt"
旁注,规则应该制作他们所说的文件。所以你真的希望你的编译规则看起来像:
r.exe : main.cpp
g++ -std=c++11 $^ -o $@
compile : r.exe
.PHONY : compile