Makefile基本指令

语法规则

目标 ... : 依赖 ...
	命令1
	命令2
	. . .

1、目标即要生成的文件。如果目标文件的更新时间晚于依赖文件更新时间,则说明依赖文件没有改动,目标文件不需要重新编译。否则会进行重新编译并更新目标文件。

2、默认情况下Makefile的第一个目标为终极目标。

3、依赖:即目标文件由哪些文件生成。

4、命令:即通过执行命令由依赖文件生成目标文件。注意每条命令之前必须有一个tab保持缩进,这是语法要求(会有一些编辑工具默认tab为4个空格,会造成Makefile语法错误)。

5、all:Makefile文件默认只生成第一个目标文件即完成编译,但是我们可以通过all 指定所需要生成的目标文件。

常用指令

  1. 获取系统名字:
    • UNAME := $(shell uname) 对于Linux,它可能返回"Linux",对于Mac OS,它可能返回"Darwin"
    • OSNAME := $(shell ver) 命令的输出是 “Microsoft Windows [Version 10.0.19041.867]”
  2. 打印输出变量 @echo “Flags: $(CFLAGS)”
  3. find . -maxdepth 10 -type d 从当前目录搜索所有子级目录(搜素深度为10级),-type d表示只查找目录。

报错以及解决

注意 win系统下要在vscode 中的git bash下进行编译。

  1. “XXX is up to date”问题的解决办法 删除曾经makefile生成的文件。

相关推荐

  1. Makefile基本指令

    2023-12-16 02:12:05       63 阅读
  2. <span style='color:red;'>Makefile</span>

    Makefile

    2023-12-16 02:12:05      53 阅读
  3. linux基础工具-make/makefile

    2023-12-16 02:12:05       53 阅读
  4. Android FrameWork基础Makefile

    2023-12-16 02:12:05       42 阅读
  5. 基于 Makefile 的 FPGA 构建系统

    2023-12-16 02:12:05       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 02:12:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 02:12:05       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 02:12:05       87 阅读
  4. Python语言-面向对象

    2023-12-16 02:12:05       96 阅读

热门阅读

  1. swift 多线程锁(一) NSLock

    2023-12-16 02:12:05       55 阅读
  2. MapReduce模拟统计每日车流量-解决方案

    2023-12-16 02:12:05       63 阅读
  3. Go 好用的Api

    2023-12-16 02:12:05       58 阅读
  4. Linux信号

    2023-12-16 02:12:05       54 阅读
  5. 时光机器:用rrweb打造可回溯的用户体验!

    2023-12-16 02:12:05       64 阅读
  6. Go 1.21 新内置函数:min、max 和 clear

    2023-12-16 02:12:05       50 阅读