Linux下的系统编程——makefile入门(四)

简介: Linux下的系统编程——makefile入门(四)

前言:

或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。

一、makefile: 管理项目。

设置文件add.c  div1.c  sub.c   hello.c

   命名:makefile     Makefile  --- make 命令

   1.  1 个规则:

       目标:依赖条件

                       (一个tab缩进)命令

makefile中的规则

(1)目标的时间必须晚于依赖条件的时间,否则,更新目标

(2)依赖条件如果不存在,找寻新的规则去产生依赖条件。

   ALL:指定 makefile 的终极目标。

       (目的是确定最终退出的目标)

   2.  2 个函数:

       (1)src = $(wildcard ./*.c)

       匹配当前工作目录下的所有.c 文件。将文件名组成列表,赋值给变量 src。 src = add.c sub.c div1.c

       (2)obj = $(patsubst %.c, %.o, $(src))

       将参数3中,包含参数1的部分,替换为参数2。 obj = add.o sub.o div1.o

           clean:    (没有依赖)

      -rm -rf $(obj) a.out    “-”:作用是,删除不存在文件时,不报错。顺序执行结束。

   3.  3 个自动变量:

       (1)$@

                      在规则的命令中,表示规则中的目标。

       (2)$^

                       在规则的命令中,表示所有依赖条件。

       (3)$<

                       在规则的命令中,表示第一个依赖条件。如果将该变量应用在模式规则中,它可将

               依赖条件列表中的依赖依次取出,套用模式规则。

4.模式规则:

       %.o:%.c

          gcc -c $< -o %@

   (1)静态模式规则:

       $(obj):%.o:%.c

          gcc -c $< -o %@    

   (2)伪目标:

       .PHONY: clean ALL

    参数:

       -n:模拟执行make、make clean 命令。

       -f:指定文件执行 make 命令。          xxxx.mk

变化1:

变化2:


目录
相关文章
|
2天前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
23 3
|
2天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
WK
|
3天前
|
监控 Ubuntu Linux
Linux系统平均负载如何查看?
在Linux系统中,有多种命令可用于查看平均负载,包括实时和历史数据。常用方法有:`uptime`命令显示系统运行时间和平均负载;`top`命令实时监控系统进程和资源使用;`w`命令展示用户信息及负载;通过`cat /proc/loadavg`查看特定文件中的负载信息;`sar`命令提供详尽的系统资源监控;而`htop`则以交互方式展示系统负载和资源使用情况。这些工具帮助用户全面了解系统性能状态。
WK
10 2
|
2天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
4月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
11月前
|
存储 Linux C语言
Linux:入门学习知识及常见指令
Linux:入门学习知识及常见指令
|
4月前
|
存储 消息中间件 网络协议
Linux 系统编程从入门到进阶 学习指南
本文旨在为初学者提供一个清晰的 Linux 系统编程入门指南,带你步入 Linux 系统编程的世界,从基本概念到实用技能,一步步建立起您的知识体系。
Linux 系统编程从入门到进阶 学习指南
|
运维 Linux Shell
Linux权限维持入门学习(上)
Linux权限维持入门学习
120 0
|
运维 Shell Linux
Linux权限维持入门学习(下)
Linux权限维持入门学习
135 0
|
Linux 网络安全 Perl
Linux操作系统实战入门-学习报告
Linux操作系统实战入门-学习报告
136 0
下一篇
云函数