You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Makefile中CC=gcc、CXX=g++等变量定义段是什么含义?

Makefile 变量定义说明

你贴的这5行都是Makefile中最基础的变量赋值操作,作用是统一指定构建流程用到的工具命令,后续Makefile其他规则里通过$(变量名)就能直接调用对应工具,后续要换工具版本、改工具路径的时候只需要修改这几行的赋值,不用全文件批量替换。

各行具体作用如下:

  • CC=gcc:指定C语言编译器为gcc。CC是Makefile长期沿用的内置约定变量名,原本默认值是系统默认的C编译器cc,这里显式指定使用GNU套件的gcc来编译所有.c后缀的C语言源码。
  • CXX=g++:指定C语言编译器为g++。CXX同样是Makefile内置约定变量,负责编译.cpp/.cc/.cxx这类后缀的C源码,这里显式指定使用GNU套件的g处理C代码编译。
  • RM=rm:指定文件删除命令为rm。RM也是Makefile内置约定变量,默认值通常是rm -f,一般在make clean这类清理构建产物的规则里会调用这个命令;你这里写的是纯rm,实际项目里大多会改成RM=rm -f,避免删除不存在的文件时抛出错误中断构建流程。
  • PROTOC=protoc:项目自定义变量,指定Protobuf(Protocol Buffers)序列化协议的官方编译工具protoc,后续规则里要把.proto格式的接口定义文件编译成对应编程语言的源码时,就会通过$(PROTOC)调用这个工具执行代码生成,这个变量不是Makefile自带的,是项目根据自身依赖加的配置。
  • ODB=odb:项目自定义变量,指定C生态常用的ORM框架ODB的代码生成工具odb,后续规则里要把带ODB持久化注解的C头文件编译成对应数据库的操作代码时,就会通过$(ODB)调用这个工具,同样属于项目自定义的工具配置,不是Makefile内置变量。

内容的提问来源于stack exchange,提问作者monster-dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:09:57