【发布时间】:2017-11-30 15:19:06
【问题描述】:
我目前正在做一个更大的项目,我想用几个不同的代码作为输入来测试可执行文件。
我这样称呼它./test < code1
在命令echo $? 之后,它显示最后一个返回值 [0, 1, 2, ..]
我想自动化,所以我在makefile 中创建了这样的调用:
#makefile
[...]
test :
./test < code1
@echo $$?
./test < code2
@echo $$?
[...]
[...]
所以我可以打电话给make test。
当程序成功返回 0 时,一切正常。但是当程序必须返回 0 以外的值时,它会告诉我:
./test < code3
Makefile:19: recipe for target 'test' failed
make: *** [test[ Error 2
奇怪的是,当我尝试使用代码调用程序时,它会在命令行中崩溃,例如:
./test < code3; echo $?
它运行良好,并显示最后的退出状态(例如 3)。
我现在很困惑,因为我认为它应该工作相同。有人可以帮帮我吗?
谢谢!
【问题讨论】:
-
如果测试程序和目标都命名为
test,则在尝试make test时通常会得到make: "test" is up to date。我猜你的真实Makefile看起来有些不同。