当前位置: 首页 > news >正文

makefile基本语法

在编写复杂的程序项目时,Makefile 是一个非常有用的工具,它能自动化构建过程。以下是一些基本的 Makefile 语法介绍:

  1. 基本结构

    target: dependenciescommand
    
    • target:构建目标,通常是一个文件,如可执行文件。
    • dependencies:目标所依赖的文件或其他目标。
    • command:构建目标的命令,前面需要用制表符(Tab)缩进。
  2. 示例

    all: main.o utils.ogcc -o myprogram main.o utils.omain.o: main.cgcc -c main.cutils.o: utils.cgcc -c utils.cclean:rm -f *.o myprogram
    • all 是默认目标,当执行 make 时会构建这个目标。
    • clean 目标用来清理编译生成的文件。
  3. 变量

     

    CC = gcc
    CFLAGS = -Wall -gall: main.o utils.o$(CC) $(CFLAGS) -o myprogram main.o utils.omain.o: main.c$(CC) $(CFLAGS) -c main.cutils.o: utils.c$(CC) $(CFLAGS) -c utils.c
  4. 自动变量

    • $@:目标文件名
    • $<:第一个依赖文件名
    • $^:所有依赖文件名

    示例:

     
    all: myprogrammyprogram: main.o utils.o$(CC) -o $@ $^main.o: main.c$(CC) -c $<utils.o: utils.c$(CC) -c $<
    
  5. 伪目标

    • clean 是一个伪目标,因为它不生成文件,只执行命令。可以通过 .PHONY 声明:
       

      .PHONY: clean
      clean:rm -f *.o myprogram

这些基本语法帮助你创建简单而有效的 Makefile,可以根据项目需求进一步深入探索更多功能。

http://www.lryc.cn/news/420027.html

相关文章:

  • 白骑士的PyCharm教学实战项目篇 4.4 大数据处理与分析
  • 无人机之民用无人机用途分类篇
  • Android10 修改设备名称
  • go testing 包
  • 基于phpstudy的靶场搭建和github加速
  • 【数据结构】Map与Set
  • Flamingo: a Visual Language Model for Few-Shot Learning
  • flume性能调优
  • mysql 字符串转数组
  • UE基础 —— 术语
  • kubernets学习笔记——使用kubeadm构建kubernets集群及排错
  • 简述MYSQL聚簇索引、二级索引、索引下推
  • 电脑开机后出现bootmgr is missing原因及解决方法
  • 2024 年 7 月公链行业研报:市场波动中 Solana 表现抢眼,Layer 2 竞争白热化
  • Python查缺補漏
  • c++的类和对象(中):默认成员函数与运算符重载(重难点!!)
  • Android .kl按键布局文件
  • Java每日一练_模拟面试题6(JVM的GC过程)
  • 数据防泄密软件推荐|(6大数据防泄密软件推荐!)
  • Codeforces 874 div3 A-G
  • 暑期数据结构 空间复杂度
  • 【Android Studio】图标一键生成 Image Asset Studio(一键各机型适配图标生成工具-告别一个一个替换)
  • C++ | Leetcode C++题解之第332题重新安排行程
  • 使用Python实现简单的网页爬虫:抓取网站标题
  • 视觉SLAM ch3—三维空间的刚体运动
  • 计算机毕业设计选题推荐-二手图书交易系统-Java/Python项目实战
  • 4.MySQL数据类型
  • 快递查询新纪元:一键批量获取多家快递物流详情
  • docker部署redis和mongoDB
  • 了解LVS,配置LVS