首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“homework1”后缺少操作数- Makefile

“homework1”后缺少操作数- Makefile
EN

Stack Overflow用户
提问于 2013-07-29 10:54:08
回答 2查看 812关注 0票数 0

我一直收到"diff:在‘homework1’之后缺少操作数“的错误消息,但我已经包含了一个bash文件。有没有人可以看一下我的makefile,并给我一个如何修复它的提示?谢谢!

代码语言:javascript
复制
#
#  $RCSfile$
#  $Revision$
#  $Author$
#  $Date$
#  $Log$
#

CC=gcc
DEBUG=-g
CFLAGS=#(DEBUG) -Wall -Wshadow -Wunreachable-code -Wredundant-decls -Wmissing-declarations -Wold-style-definition -Wmissing-prototypes -Wdeclaration-after-statement
PROGS=homework1 

all: $(PROGS) test

homework1: homework1.o
    $(CC) $(CFLAGS) -o homework1 homework1.o

homework1.o: homework1.c
    $(CC) $(CFLAGS) -c homework1.c

test:   *
    diff $(PROGS) $(example.bash) || exit 0

clean:
    rm -f $(PROGS) *.o *~
EN

回答 2

Stack Overflow用户

发布于 2013-07-29 10:59:35

您引用了一个make变量$(example.bash),但您的makefile中没有设置变量example.bash。你指的是example.bash文件吗?你不应该使用make variable语法,如果这是真的:

代码语言:javascript
复制
test:   *
        diff $(PROGS) example.bash || exit 0

这似乎没有什么用处)

票数 0
EN

Stack Overflow用户

发布于 2013-07-29 11:42:44

要比较使用diff的两个命令的输出,您至少需要将这两个命令中的一个命令的输出重定向到一个文件,而将另一个命令的输出通过管道传输到diff的输入流。下面是一个用输出文件替换$(PROGS)的示例:

代码语言:javascript
复制
./$(PROGS) > progs_output
bash example.bash | diff progs_output - || exit 0

它执行$(PROGS)的值,将其输出发送到一个名为progs_output的文件。然后执行bash脚本,将其输出通过管道传输到diff实用程序的标准输入流,该实用程序将progs_output与来自其标准输入流的内容进行比较。其他的都是你做的。但是为什么要使用出口0呢?如果测试失败,你不希望make告诉你吗?

另外,作为test目标的前提条件的星号(*)是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17915378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档