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

Make命令仅执行Makefile首行,如何一次性运行所有命令?

解决Makefile一次性构建所有目标的问题

先修正你当前Makefile里的两处关键问题:

1. 修复编译命令的语法错误

第二条编译命令里的gcc-c缺少空格,应该改为gcc -c,否则执行时会因找不到gcc-c命令而失败。

2. 添加all伪目标

Make默认只会构建文件中的第一个目标,所以需要定义一个包含所有待构建目标的all目标,并将其放在文件最开头,这样执行make或make all都会触发所有编译指令。

修改后的完整Makefile如下:

.PHONY: all
all: main.o functionsLab1.o

main.o: main.c functionsLab1.c functionsLab1.h
    gcc -c main.c

functionsLab1.o: functionsLab1.c functionsLab1.h
    gcc -c functionsLab1.c

补充说明:

  • .PHONY: all 声明all是伪目标,避免当前目录下存在名为all的文件时,Make误判目标已完成而跳过构建。
  • all目标依赖main.o和functionsLab1.o,Make会自动依次构建这两个依赖目标,从而执行所有编译命令。
  • 现在执行make或make all,都会一次性运行所有编译指令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:30:49