构建工具:Make和Makefile

简介: 构建工具:Make和Makefile

Make:一个构建工具

Makefile: 构建规则


一个简单的例子

功能是将b.txt 和 c.txt合并到新文件a.txt


.
├── Makefile   # 构建规则
├── b.txt
└── c.txt

Makefile


a.txt: b.txt c.txt
  cat b.txt c.txt > a.txt

b.txt


b.txt

c.txt


c.txt

执行


$ make

Makefile格式

<目标target> : <前置条件prerequisites> 
[tab]  <命令commands>

目标可以是文件名 或者 操作名"伪目标"(phony target)

前置条件通常是一组文件名,之间用空格分隔

命令由一行或多行的Shell命令组成

注释 井号(#)

@ 关闭回声

伪目标示例

# 申明伪目标
.PHONY: echox
# 定义变量
msg = ''
# 目标
echox:
  @#  @关闭回声
  @echo $(msg)

通过命令行传递参数

$ make echox msg='hi'
hi
相关文章
|
6月前
|
C语言 Windows
使用CMake调用Makefile 项目
使用CMake调用Makefile 项目
103 0
|
6月前
|
IDE Java Linux
【CMake】CMake构建C++代码(一)
【CMake】CMake构建C++代码(一)
|
6月前
|
IDE Unix 测试技术
CMake基础(10)使用ninja构建
CMake基础(10)使用ninja构建
1041 1
|
6月前
|
编译器 C语言 C++
CMake基础(9)使用Clang编译
CMake基础(9)使用Clang编译
456 0
|
6月前
|
Rust 开发工具 开发者
如何通过cargo install安装我们的crate?
我在安装tauri的开发工具时,产生一个疑问,为什么可以通过cargo安装全局命令,顺着这个线索我找到了如下方案。原理是在项目开发者指定可执行文件,也就是`[[bin]]`,然后发布到crates.io,之后就可以通过install安装到可执行目录下,我们就能正常使用了。并不是所有crate都可以执行,而是只有在源码中声明bin的才能使用。
162 2
|
6月前
|
IDE Linux 程序员
Linxu自动化构建工具make/Makefile究竟时什么?
Linxu自动化构建工具make/Makefile究竟时什么?
54 0
|
6月前
|
C++
项目自动化构建工具——make/Makefile
项目自动化构建工具——make/Makefile
73 0
|
6月前
|
Linux C语言
【Linux系统编程】项目自动化构建工具make/Makefile--2
【Linux系统编程】项目自动化构建工具make/Makefile--2
make/makefile的使用
make/makefile的使用
|
Linux 开发工具 C语言
Linux编译gcc/g++、自动化构建工具make/makefile
Linux中关于gcc/g++的基本操作,以及makefile的基本操作。
Linux编译gcc/g++、自动化构建工具make/makefile