You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Makefile报错:make: *** [Makefile:11: test] Error 3

报错原因

make 执行规则中的命令时,会检测命令的退出状态码:如果命令返回非0值,make 就会判定该命令执行失败,终止后续流程并抛出对应报错。
你运行的./ex2_q1 11 24 36 7 5输出统计到3个素数后,程序退出码为3,不是代表正常退出的0,因此被make判定为执行失败,抛出Error 3。
该问题大概率是你的ex2_q1的main函数直接把统计到的素数个数作为返回值return了,而没有返回默认的正常退出值0。

解决方案

可根据自身需求二选一:

  • 如果你希望保持程序返回素数计数作为退出码的逻辑:只需要在Makefile的test规则命令前加-,让make忽略该命令的错误即可,修改后test规则如下:
    test: ex2_q1
        -./ex2_q1 11 24 36 7 5
    
  • 如果你不需要程序返回素数计数:直接修改ex2_q1.c的main函数,正常执行完成后返回0即可。

额外注意事项

你当前的Makefile中ex2_q1的依赖包含factors,但链接命令里没有链接factors.o,如果后续ex2_q1调用了factors.c中的函数会出现链接错误,建议根据实际逻辑调整:如果ex2_q1依赖factors的实现,链接命令需要补上factors.o:

ex2_q1: ex2_q1.o factors.o
    gcc -o ex2_q1 -Wall ex2_q1.o factors.o

内容的提问来源于stack exchange,提问作者Tl2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:24:02