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

makefile学习笔记

makefile(需要安装make软件)

makefile介绍

只需要了解最基本的makefile规则就可以,因为在实际中大多数都是用cmake来生成makefile。makefile文件的名称可以是makefile或者Makefile,这个文件定义了整个工程(通常是c和c++的工程)的编译规则,它可以指定哪些文件需要先编译,哪些需要后编译,哪些需要重新编译,甚至还有一些更复杂的操作,makefile文件也可以执行操作系统的命令。

makefile的规则

基本规则

target:prerequisites

        command1

上面的target表示目标文件(以.o为后缀的文件)或者执行文件,prerequisites是生成target所需要的文件,command1表示make需要执行的命令,也即任意的shell命令,特别注意command1前面需要一个tab键。

makefile文件内容示例

示例中的cc表示gcc。clean不表示文件名它只是一个动作名称,要求它冒号后面什么也没有。

makefile的变量规则

makefile的变量和python一样用=来赋值,比如a=xx.o yy.o zz.o,通过$(变量名)来取值。

示例

自动推导规则

make可以自动推导命令,比如从.c生成.o的gcc命令它可以自己推导出来并且.o的依赖文件.c它也可以自动推导出来所以就可以简化代码,不仅如此它还可以推导出依赖的.h文件。不过我感觉它的只能自动推导除去后缀名外的文件名一样的情况,如果.o文件的文件名和它的依赖c文件和头文件名称不一样就应该不能自动推导了,不过这种情况应该还能降gcc命令推导出来依旧不用写gcc命令。

示例1

这里的.PHONY:clean表示不自动推导clean

示例2

与makefile相关的命令行命令

make;make命令执行时需要有一个makefile文件,它会找makefile文件中的第一个目标文件作为它最终的目标文件。

make clean;执行makefile文件中的clean中的命令,一般用来清除make生成的文件

cmake

特别注意:一般在工程目录的同级目录下新建build目录用于存放cmake编译的过程文件,在build中可以输入类似的命令行命令cmake ..

cmake的命令在我的手写笔记中查看。

http://www.xdnf.cn/news/703117.html

相关文章:

  • Java图片处理实战:Imgscalr技术方案
  • 视觉中国:镜头下的中国发展图景
  • C++030(内联函数)
  • Δ-Σ ADC的工作原理
  • 2025东北CCPC(部分+详解)
  • Java从入门到精通 - 面向对象编程基础
  • 将can日志数据提取到excle中
  • HOMIE——遥操类似ALOHA主从臂的外骨骼驾驶舱收集数据:通过上肢模仿学习和全身控制RL训练自主策略
  • JVM虚拟机监控及性能调优实战!
  • mqtt c语言publish topic
  • 6 质量控制中的常用缩略语和符号(OEE)以及解释
  • 嵌入式学习之系统编程(七)线程的控制(互斥与同步)和死锁
  • CPG开源项目对比
  • 18度的井水
  • C++补充基础小知识:为什么要继承、什么时候继承、什么时候直接用
  • 高并发计数器LongAdder 实现原理与使用场景详解
  • Jmeter性能测试(应用场景、性能测试流程、搭建测试环境)
  • 实例与选项对象
  • SpringBoot+Vue+Echarts实现可视化图表的渲染
  • 自动生成程序的heap文件
  • #!/usr/bin/env python
  • JS中的属性描述符
  • Day 20
  • 生成式引擎在不同行业的应用案例
  • 第十章 Java基础-Static静态变量
  • 基于物理约束的稀疏IMU运动捕捉系统
  • spring和Mybatis的各种查询
  • Rust 学习笔记:使用迭代器改进 minigrep
  • 力扣刷题Day 61:子集(78)
  • 【案例94】笛卡尔积导致报“临时表空间不足”