如何修改Makefile中默认的/usr/bin/g++为指定路径的g++可执行文件
修改Makefile默认g++路径的常用方案
Make 内置隐式规则中默认使用 CXX 变量指代 C++ 编译器,默认值为系统路径下的 g++,修改该变量即可替换默认调用的g++路径,常用方案如下:
方案1:单次编译临时指定
无需修改任何文件,执行make命令时直接传入自定义的CXX路径即可:
make CXX=/path/to/your/target/g++
示例:要使用/opt/gcc-12/bin目录下的g++,命令为:make CXX=/opt/gcc-12/bin/g++
方案2:Makefile内固定配置
在Makefile最开头定义CXX变量,指定目标g++路径即可,后续所有make操作都会自动使用该编译器:
# 放在Makefile头部 CXX = /opt/gcc-12/bin/g++ # 后续编译规则正常使用$(CXX)变量即可,示例规则如下 all: main.cpp $(CXX) main.cpp -o main
方案3:当前终端会话/全局永久生效
如果不想修改Makefile也不想每次传参,可以通过环境变量配置:
- 仅当前终端会话生效:直接在终端执行export命令
该配置在关闭终端后自动失效。export CXX=/opt/gcc-12/bin/g++ - 对当前用户永久生效:将上面的export命令写入用户配置文件(~/.bashrc 或 ~/.zshrc,根据你使用的shell类型选择),写入后执行
source ~/.bashrc(对应zsh则为source ~/.zshrc)即可立即生效,后续每次登录都会自动加载该配置。
注意:如果你的Makefile中是直接硬写死
g++命令而非使用$(CXX)变量,上述方案无法生效,需要先把Makefile中所有硬写的g++替换为$(CXX),或者直接修改硬写的g++路径为目标路径。
内容的提问来源于stack exchange,提问作者roulette01
相关产品推荐
相关产品推荐

