【发布时间】:2022-01-04 13:26:56
【问题描述】:
我正在尝试为我的代码构建一个 Makefile,但由于某种原因我得到了
./ex2_q1 11 24 36 7 5
有3个素数
make: *** [Makefile:11: test] 错误 3
第二行是程序的输出。 一切似乎都正常,但我不知道为什么会出现错误。
Makefile 是:
PROG = ex2_q1
all: test
test: ex2_q1
./ex2_q1 11 24 36 7 5
factors.o: factors.c
gcc -Wall -c factors.c
ex2_q1.o: ex2_q1.c
gcc -Wall -c ex2_q1.c
clean:
rm -vf *.o $(PROG)
rm -vf *.o factors
rm -vf *.txt
rm -vf *.log
factors: factors.o
gcc -o factors -Wall factors.o
ex2_q1: ex2_q1.o factors
gcc -o ex2_q1 -Wall ex2_q1.o
【问题讨论】:
-
您的程序很可能以非零返回码退出。
ex2_q1.c中有什么内容?我建议将-Werror添加到Makefile 中的所有gcc行,这样它会强制您修复任何警告(然后执行make clean);这可能有助于防止这个问题。 -
重要的诊断消息在
make的输出中较早。您忽略了它们,因此很难确定问题所在。 -
@JohnBollinger 这些是我收到的消息:gcc -Werror -Wall -c ex2_q1.c gcc -Werror -Wall -c factor.c gcc -Werror -o factor -Wall 因素。 gcc -Werror -o ex2_q1 -Wall ex2_q1.o ./ex2_q1 11 24 36 7 5 有 3 个质数 make: *** [Makefile:11: test] 错误 3
-
@psmears Iv'e 补充了这一点,但仍然没有其他错误,就像我在上一条评论中引用的那样。
-
@psmears 好的,我确实返回了一个非零返回码。我解决了这个问题,似乎就是这样!