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:


目录
相关文章
|
1天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
9 6
|
1天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
11 5
|
2天前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
12 5
|
2天前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####
|
5月前
|
消息中间件 存储 缓存
【嵌入式软件工程师面经】Linux系统编程(线程进程)
【嵌入式软件工程师面经】Linux系统编程(线程进程)
125 1
|
6月前
|
Linux 调度 数据库
Linux下的系统编程——线程同步(十三)
Linux下的系统编程——线程同步(十三)
113 0
Linux下的系统编程——线程同步(十三)
|
存储 Linux 调度
Linux系统编程 多线程基础
Linux系统编程 多线程基础
61 1
|
6月前
|
存储 安全 数据管理
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
62 1
|
6月前
|
NoSQL Unix Linux
Linux下的系统编程——守护进程、线程(十二)
Linux下的系统编程——守护进程、线程(十二)
71 0
Linux下的系统编程——守护进程、线程(十二)
|
6月前
|
安全 Linux C语言
Linux系统编程(线程同步 互斥锁)
Linux系统编程(线程同步 互斥锁)
67 0