gpt4 book ai didi

c++ - Makefile 问题 : Error 127, 255,在 makefile 中运行程序

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:36 25 4
gpt4 key购买 nike

我是 ECE 的一名学生,正在从事一项编程作业;它已经提交并正在评分,但我仍然想知道为什么我的 makefile 不起作用。当我使用命令“make tests”在我们学校的服务器上运行该文件时,它会响应

'make: testq: 找不到命令。make * 测试错误 127

如果我运行“make testq12345”,它实际上会运行我的程序“myar”并生成输出文件,但它会给出错误 255。我不明白这个问题,或者为什么 makefile 找不到目标.我通过 stackoverflow 和其他来源搜索了这些错误,但不理解也找不到可行的解决方案。如果重要的话,我会在 Linux 服务器上运行它。

我在 CS311/Homework4/test 中运行它,其中包含生成文件、程序和文本文件。

感谢您的时间和协助;对此表示赞赏。

#
# $RCSfile$
# $Revision$
# $Author$
# $Date$
# $Log$
#
# Author: Cody R Crawford
# Email: crawfoco@onid.orst.edu
# Course: CS311-400
# Homework: 4
# Citations:
# http://mrbook.org/tutorials/make/
# For examples, guidance, and genera understanding
# Assumptions: I assume you want the .o files to show up unless
# you specifically command 'clean'
#########################################################

CC=gcc
DEBUG=-g
CFLAGS=$(DEBUG) -Wall
PROGS=sig_demo myar
OBJECTS=$(PROGS:.c=.o)

all: $(PROGS)

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

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

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

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

tests:
testq
testt
testv

testq:
testq24
testq135
testq12345

testq24:
rm -f ar24.ar
ar q ar24.ar 2-s.txt 4-s.txt
myar q myar24.ar 2-s.txt 4-s.txt
diff ar24.ar myar24.ar

testq135:
rm -f ar135.ar
ar q ar135.ar 1-s.txt 3-s.txt 5-s.txt
myar q myar135.ar 1-s.txt 3-s.txt 5-s.txt
diff ar135.ar myar135.ar

testq12345:
rm -f ar12345.ar
rm -f myar12345.ar
ar q ar12345.ar 1-s.txt 2-s.txt 3-s.txt 4-s.txt 5-s.txt
./myar -q myar12345.ar 1-s.txt 2-s.txt 3-s.txt 4-s.txt 5-s.txt
diff ar135.ar myar135.ar

testt:
testt24
testt135
testt12345

testt24:
rm -f ar24.ar
ar q ar24.ar 2-s.txt 4-s.txt
ar t ar24.ar > ar-ctoc.txt
myar -t ar24.ar > myar-ctoc.txt
diff ar-ctoc.txt myar-ctoc.txt

testt135:
rm -f ar135.ar
ar q ar135.ar 1-s.txt 3-s.txt 5-s.txt
ar t ar135.ar > ar-ctoc.txt
myar -t ar135.ar > myar-ctoc.txt
diff ar-ctoc.txt myar-ctoc.txt

testt12345:
rm -f ar12345.ar
ar q ar12345.ar 1-s.txt 2-s.txt 3-s.txt 4-s.txt 5-s.txt
ar t ar12345.ar > ar-ctoc.txt
myar -t ar12345.ar > myar-ctoc.txt
diff ar-ctoc.txt myar-ctoc.txt

testv:
testv24
testv135
testv12345

testv24:
rm -f ar24.ar
ar q ar24.ar 2-s.txt 4-s.txt
ar v ar24.ar > ar-ctoc.txt
myar -v ar24.ar > myar-ctoc.txt
diff ar-ctoc.txt myar-ctoc.txt

testv135:
rm -f ar135.ar
ar q ar135.ar 1-s.txt 3-s.txt 5-s.txt
ar v ar135.ar > ar-ctoc.txt
myar -v ar135.ar > myar-ctoc.txt
diff ar-ctoc.txt myar-ctoc.txt

testv12345:
rm -f ar12345.ar
ar q ar12345.ar 1-s.txt 2-s.txt 3-s.txt 4-s.txt 5-s.txt
ar v ar12345.ar > ar-ctoc.txt
myar -v ar12345.ar > myar-ctoc.txt
diff ar-ctoc.txt myar-ctoc.txt




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

最佳答案

Dependencies应该列在同一行,否则它会尝试将它们作为命令执行;

例如;

tests:
testq
testt
testv

将尝试执行不存在的 shell 命令 testqtestttestv 并给出错误,同时;

tests: testq testt testv

将确保 makefile 目标 testqtestttestv 在目标 tests 之前完成被执行。在这种情况下,tests 不包含任何命令,因此 target 所做的唯一事情就是确保执行依赖项。

关于c++ - Makefile 问题 : Error 127, 255,在 makefile 中运行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23447963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com