Makefile 编写

通用格式内容
命令列表中的每条命令必须以 TAB 键开始,不能使用空格!
基本书写:

复制代码
main: main.o input.o calcu.o 
    gcc -o main main.o input.o calcu.o
 main.o: main.c
     gcc -c main.c
 input.o: input.c
     gcc -c input.c
 calcu.o: calcu.c
     gcc -c calcu.c

 clean:
     rm *.o
     rm main

在对其进行简化后,如下:

复制代码
 objects = main.o input.o calcu.o
 main: $(objects)
     gcc -o main $(objects)
 
 %.o : %.c
     gcc -c $<

.PHONY : clean
 
 clean:
   rm *.o
   rm main

简化后的程序使用到了变量、通配符:
\< 依赖文件集合中的第一个文件,如果依赖文件是以模式 ( 即" % " ) 定义的,那么 " < "就是符合模式的一系列的文件集合。
使用伪目标的主要是为了避免 Makefile 中定义的只执行命令的目标和工作目录下的实际文
件出现名字冲突,有时候我们需要编写一个规则用来执行一些命令,但是这个规则不是用来创
建文件的。

相关推荐
猪头少年不会遇见算法学姐12 分钟前
Makefile快速上手笔记
linux·学习
qiu_lovejun99816 分钟前
linux安装docker和redis和rabbitmq和nginx和rocketmq和kafka
linux·redis·docker·kafka·rabbitmq·rocketmq
运维大师21 分钟前
【Linux运维极简教程】04-进程与服务管理
linux·运维
keke.shengfengpolang24 分钟前
自动化考什么证书对就业有帮助?
运维·自动化
javajenius31 分钟前
Masslynx 4.1安装包免费下载及详细安装教程
java·服务器·前端·其他
源码学社35 分钟前
Spug 3.0 Ubuntu 22.04 Docker 部署文档
linux·ubuntu·docker·windows安装·spug
tebukaopu14844 分钟前
ubuntu挂载nfs
linux·运维·ubuntu
雾沉川1 小时前
Netcatty 开源 SSH 客户端完整技术使用教程
运维·开源·ssh
石小千1 小时前
修改Docker Engine 存储路径
运维·docker·容器
mounter6251 小时前
Linux 7.2 内核技术前瞻:核心 subsystems 合并与重构深度解析
linux·kernel