Makefile入门

make常用命令

make -f

执行 make 命令时,它会去当前目录下查找名为Makefile 的文件,可以使用**-f** 选项指定文件,不再使用名为Makefile的文件

make -C

可以使用**-C**选项指定目录,切换到其他目录里去

make变量赋值

自动变量

bash 复制代码
$@:代表当前规则的目标文件名

$<:代表第一个依赖文件的文件名

$^:代表所有依赖文件的列表,去重后按顺序列出

$?:依赖项中,所有比目标文件时间戳晚的依赖文件,依赖文件之间以空格分开

$*:	表示目标文件的名称,不包含目标文件的扩展名

$+:	表示所有的依赖文件,这些依赖文件之间以空格分开,按照出现的先后为顺序,其中可能 包含重复的依赖文件

预定义变量

bash 复制代码
-I<directory>:指定头文件搜索路径

-L<directory>:指定库文件搜索路径。

-l<library>:链接指定的库,例如 -lm 链接数学库

AR	生成静态库库文件的程序名称	ar
AS	汇编编译器的名称	as
CC	C 语言编译器的名称	cc
CPP	C 语言预编译器的名称	$(CC) -E
CXX	C++语言编译器的名称	g++
RM	删除文件程序的名称	rm -f
ARFLAGS	生成静态库库文件程序的选项	无默认值
ASFLAGS	汇编语言编译器的编译选项	无默认值
CFLAGS	C 语言编译器的编译选项	无默认值
CPPFLAGS	C 语言预编译的编译选项	无默认值
CXXFLAGS	C++语言编译器的编译选项	无默认值
FFLAGS	FORTRAN 语言编译器的编译选项	无默认

CFLAGS := -Wall -O2 -g
CFLAGS += -I $(shell pwd)/include

export LDFLAGS="-L/path/to/lib -lmylib"
gcc $CFLAGS -o output input.c $LDFLAGS

**CFLAGS**是用于设置 C/C++ 编译器选项的环境变量。它可以用来指定编译过程中的各种选项,如优化级别、警告级别、头文件包含路径等。

LDFLAGS 是用于设置链接器选项的环境变量。它可以用来指定链接过程中的各种选项,如库路径、库文件等。

相关推荐
wespaul3 分钟前
VeapAI 自然语言操作实战|第 08 篇:治理层——审计、指标、评估与权限
运维·网络·数据库
宋明河4 分钟前
windows与ubuntu双系统主机下ubuntu访问windows磁盘是只读
linux·windows·ubuntu
Sayai5 分钟前
Kafka 2.8→3.9.1 跨大版本升级实战:ZooKeeper 同步升级、数据目录迁移与回滚预案全流程
大数据·运维·分布式·zookeeper·kafka
chenxy027 分钟前
国产加速卡-应知应会
linux·运维·服务器
HackTwoHub8 分钟前
免 Root 安卓渗透工具 Stryker|把 Kali 装进手机!随身无线渗透工作站,内置 Nmap/Nuclei/Metasploit 全套武器库
android·linux·运维·人工智能·web安全·macos·智能手机
代码村新手26 分钟前
Linux-环境变量
linux
data analyse 45627 分钟前
页面卸载时埋点上报总丢失?sendBeacon 上报与补偿方案
大数据·运维·服务器·前端·数据库·人工智能·数据分析
kmomo..30 分钟前
Linux 驱动开发学习笔记:I2C 子系统从入门到实践
linux·驱动开发·学习
敲上瘾35 分钟前
分布式系统——Redis哨兵:自动故障转移与选举原理
linux·数据库·redis·分布式·缓存·微服务
倔强的石头1061 小时前
【Linux指南】进程通信系列(二):匿名管道 —— pipe 的本质、fork 继承与四种读写规则
java·linux·运维