Yuchuan_Linux_C编程之六 Makefile项目管理

一、整体大纲

二、makefile的编写

一个规则   两个函数  三个变量

1. 一个规则

    三要素:目标, 依赖, 命令
    目标:依赖
    命令:
            第一条规则是用来生成终极目标的规则
            a. 如果规则中的依赖不存在, 向下寻找其他的规则
            b. 更新机制:比较的是目标文件和依赖文件的时间       

2. 两个函数

    1) 查找指定目录下, 指定类型的文件
           src=$(wildcard ~/aa/*.c)
    2)匹配替换函数
            obj=$(patsubst %.c, %.o, $(src))

3. 三个自动变量

        1)$<:规则中的第一个依赖
        2) $^:规则中的所有依赖
        3)$@:规则中的目标

        只能在规则中的命令中使用

4. 模式规则
        %.o:%.c
            gcc -c $< -o $@

子目标和终极目标的关系:
更新目标的原则:

三、makefile中变量的使用

makefile编写示例:

1 app:main.o sub.o mul.o
2   gcc main.o sub.o mul.o -o app
3   gcc $^ -o $@
4         
5 %.o:%.c 
6   gcc -c $< -o $@

makefile中的自动变量:

  • $<: 规则中的第一个依赖
  • $@: 规则中的目标
  • $^: 规则中的所有依赖

      只能在规则的命令中使用

posted @   YuchuanHuaying  阅读(110)  评论(0编辑  收藏  举报
编辑推荐:
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
阅读排行:
· 为DeepSeek添加本地知识库
· .NET程序员AI开发基座:Microsoft.Extensions.AI
· 精选4款基于.NET开源、功能强大的通讯调试工具
· 数据不出内网:基于Ollama+OneAPI构建企业专属DeepSeek智能中台
· 大模型工具KTransformer的安装
点击右上角即可分享
微信分享提示