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

相关推荐
机建狂魔几秒前
Codex 接入第三方模型 API 实战:以 Mimo 为例
java·服务器·数据库·ai·ai编程·codex
万少1 分钟前
用 TraeWork 给小孩做一个家庭工作台
前端·人工智能·后端
孙启超14 分钟前
【AI应用开发】ReAct 原理是什么?和普通直接提问 LLM 差别在哪?
前端·人工智能·llm·agent·react·rag·ai应用开发
山峰哥27 分钟前
数据库工程与SQL调优:从慢查询到秒级响应的实战之路
java·开发语言·数据库·sql·深度优先·启发式算法
乐观的Terry29 分钟前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
前端开发张小七29 分钟前
Java 学习笔记 · 第二课:面向对象核心(封装、继承、多态)及接口与异常
java·后端·程序员
SynthWriter29 分钟前
下班前接到急活?我用 TRAE Work 20 分钟搞定了一套完整页面原型
前端
minimoon_jojo31 分钟前
Antd Table虚拟滚动详解
前端
颜进强34 分钟前
Calude Code - 23 用 MCP 把 Jenkins 变成 AI 队友:一次对话完成自动化发布
前端·后端
wangjialelele36 分钟前
Selenium4 + Java Web自动化测试入门指南:从环境搭建到常用操作详解
java·开发语言·前端·测试工具·自动化