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 中定义的只执行命令的目标和工作目录下的实际文
件出现名字冲突,有时候我们需要编写一个规则用来执行一些命令,但是这个规则不是用来创
建文件的。

相关推荐
猫豆~3 小时前
软件包管理——2day
linux·运维
大白菜13245 小时前
进程的信号
linux
XH-hui5 小时前
【打靶日记】群内靶机Secure
linux·网络安全
Shingmc36 小时前
【Linux】进程控制
linux·服务器·算法
视觉装置在笑7136 小时前
Shell 变量基础与进阶知识
linux·运维
Web极客码7 小时前
如何通过命令行工具检查 Linux 版本信息
linux·运维·服务器
Lynnxiaowen7 小时前
今天我们继续学习Kubernetes内容pod资源对象
运维·学习·容器·kubernetes·云计算
欢鸽儿7 小时前
Vitis】Linux 下彻底清除启动界面 Recent Workspaces 历史路径
linux·嵌入式硬件·fpga
繁华似锦respect7 小时前
C++ 智能指针底层实现深度解析
linux·开发语言·c++·设计模式·代理模式
远程软件小帮手7 小时前
云电脑挂机功能上线!边上班摸鱼边游戏多开教程
运维·服务器