【问题标题】:How to deal with Makefile error: make: *** [Makefile:11: test] Error 3Makefile错误如何处理:make: *** [Makefile:11: test] 错误3
【发布时间】: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 好的,我确实返回了一个非零返回码。我解决了这个问题,似乎就是这样!

标签: c linux gcc makefile


【解决方案1】:

您的程序 ex2_q1 调用为 ./ex2_q1 11 24 36 7 5 返回非零结果。这表示一个错误以及解决该问题的正确方法是修复您的程序。如果您无法修复程序,您可以通过将配方更改为./ex2_q1 11 24 36 7 5 || true 来消除错误。如果您仍然想要错误消息但继续构建,您可以使用 -k 标志运行 make,或者您可以在配方前加上 -

test: ex2_q1
    - ./ex2_q1 11 24 36 7 5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多