redis7==源码阅读1:Makefile构成

1命令

有两份Makefile,第一份指向第二份。

编译时候使用的命令是make

清理命令是make clean

只编译自带的客户端是make redis-cli

只清理自带的客户端是make redis-cli clean

可执行文件redis-cli来自anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o redisassert.o crcspeed.o crc64.o siphash.o crc16.o monotonic.o cli_common.o mt19937-64.o,入口main在 redis-cli.o

2设置控制台日志颜色

CCCOLOR="\033[34m"

LINKCOLOR="\033[34;1m"

SRCCOLOR="\033[33m"

BINCOLOR="\033[37;1m"

MAKECOLOR="\033[32;1m"

ENDCOLOR="\033[0m"

3-makefile中自带的变量

无需声明直接使用

  1. CC:C 编译器的命令,默认值是 cc。

  2. CXX:C++ 编译器的命令,默认值是 g++。

  3. AR:用于创建静态库的命令,默认值是 ar。

  4. LD:用于链接目标文件的命令,默认值是 $(CC)。

  5. RM:用于删除文件的命令,默认值是 rm -f。

  6. CFLAGS:用于 C 编译器的编译选项。

  7. CXXFLAGS:用于 C++ 编译器的编译选项。

  8. LDFLAGS:用于链接器的选项。

  9. CPPFLAGS:用于 C/C++ 预处理器的选项。

  10. LIBS:要链接到目标的库文件。

  11. MAKE:Make 工具的命令,默认值是 make,用于递归调用 Make。

  12. SHELL:用于执行命令的系统 shell,默认值是 /bin/sh。

  13. MAKEFILE:当前正在使用的 Makefile 文件名。

  14. CURDIR:当前工作目录的路径。

  15. SUFFIXES:文件后缀列表,用于确定文件的类型。

  16. VPATH:指定寻找源文件的路径列表。

  17. MAKECMDGOALS:包含了在命令行上指定的目标列表

无需声明直接使用

4-生成依赖关系

cc -MM

-include

相关推荐
螺丝钉tina1 分钟前
[Playwright][01] 从 Puppeteer 到 Playwright:为什么选择 Playwright + TypeScript?
前端·javascript·typescript
骑着蜗牛撵大象3274 分钟前
大模型 SDK 编译就崩?用 CMakeLists 把 httplib、JSON 与 OpenSSL 装配成可复用的 ChatServer
android·java·c++·http·json·cmake·大模型sdk
Sailing4 分钟前
🚀🚀【封闭结束6】Agent 会话服务与鉴权上下文
前端·人工智能·agent
码智社8 分钟前
Redis生产环境高频踩坑总结(Java后端视角)
java·数据库·redis
IT_陈寒13 分钟前
Java项目实战经验分享:一次由JPA懒加载引发的生产事故
前端·人工智能·后端
江苏汉软14 分钟前
制造企业为什么需要MES
java·数据库·制造·mes系统·mes软件
环境栈笔记17 分钟前
浏览器多开同步怎么做?先分清设置、登录态和窗口操作
前端·人工智能·后端·自动化
deviant-ART22 分钟前
java注解简写规则
java·后端
邪修king27 分钟前
Re:Linux系统篇(三十八):进程间通信ChapterSystem V 信号量深度解析|同步互斥、内核源码、C 指针多态、实战代码
java·linux·c语言
是立不是利27 分钟前
CSS 的层叠与优先级——为什么我的样式不生效
前端·css