Makefile语法

make通过Makefile来组织软件项目的编译

基本语法

Makefile的基本语法如下:

复制代码
目标:依赖项
	编译命令

比如,如下一个示例

复制代码
test: chacha20.cpp test.cpp
	g++ test.cpp chacha20.cpp -o test -lsodium

表示生成目标文件test,依赖项为chacha20.cpp和test.cpp文件,执行命令为

g++ test.cpp chacha20.cpp -o test -lsodium

编译生成test可执行文件

源代码目录包含chacha20.cpp, test.cpp文件和Makefile文件

在目录下执行

$ make

系统会自动执行命令

g++ test.cpp chacha20.cpp -o test -lsodium

生成可执行文件test

变量赋值

可以在Makefile中使用变量,如下

复制代码
CC = g++
SRCS = test.cpp chacha20.cpp
FLAGS = -lsodium
OUTPUT_FILE = test

test: $(SRCS)
	$(CC) $(SRCS) -o $(OUTPUT_FILE) $(FLAGS)

clean:
	rm test

通过变量来指定编译的工具(g++),源代码文件(SRCS),编译选项(FLAGS),输出文件(OUTPUT_FILE)等,然后在执行命令中可以用这些参数来替代相应位置。

增加了clean选项,表示清理编译输出,在这里就是删除生成的test文件,当执行

$ make clean

之后,程序会清除输出文件

相关推荐
Tairitsu_H17 天前
[Linux系统] 自动化构建make / Makefile | 进度条
linux·操作系统·makefile·make
susplus17 天前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull
Doraemomo22 天前
IMX6ULL裸机开发——系统主频和时钟配置
arm开发·嵌入式硬件·makefile·imx6ull
djjjx.25 天前
Linux工具篇 (三):make与Makefile
linux·服务器·makefile·make
yanlaifan1 个月前
Makefile文件---伪目标PHONY
makefile
拂拉氏1 个月前
【Linux】 开发工具(Makefile、git、cgdb)解析与对于操作系统的基础认识
linux·git·操作系统·makefile·cgdb
琥珀色糖2 个月前
Linux makefile
linux·运维·服务器·makefile·make
jufeng13072 个月前
【系列:MiniKV 原理剖析 · 第 6 篇】
linux·软件工程·个人开发·makefile
jufeng13072 个月前
【系列:MiniKV 原理剖析 · 第 8 篇(完结篇)】
linux·c++·log4j·软件工程·makefile
hjjdebug4 个月前
buildroot 入门介绍
makefile·buildroot