如何在CLion 2023.1.5中Makefile构建前加载env.sh环境变量?
在CLion 2023.1.5中实现构建前加载env.sh的方法
你之前配置的「生成Makefile前执行的预配置命令」仅适用于CMake项目(用于cmake生成Makefile前执行操作),直接基于Makefile的项目不会触发这个选项,所以未生效。以下是几种可行方案:
方案一:修改CLion构建命令,串联source与make
- 点击CLion右上角运行配置下拉菜单,选择「编辑配置」
- 在弹出窗口中找到你的Makefile构建配置(默认名为「Makefile」)
- 切换到「构建」标签页,将「命令」栏的
make替换为:
(注:bash -c "source ./env.sh && make"./env.sh是项目根目录下的相对路径,若env.sh在其他位置,替换为实际绝对路径) - 保存配置后重新执行构建即可。
方案二:修改Makefile,自动加载环境变量
这种方式能让Makefile在任何环境下(CLion或命令行)都自动加载env.sh,无需额外配置:
在Makefile最开头添加以下代码:
# 自动从env.sh导出环境变量到Makefile -include .env.mk .env.mk: env.sh bash -c "source $< && set | grep -E '^[A-Z_]+=' > $@"
原理:每次执行make时,会先检查.env.mk是否存在,若不存在则执行source env.sh并将环境变量导出到.env.mk,再由Makefile包含该文件,从而获取所有定义的变量。
方案三:修改CLion启动脚本,全局加载环境变量
如果希望CLion整个进程都能获取env.sh的环境变量(包括代码索引、运行调试等场景),可以修改CLion的启动脚本:
- 找到CLion的启动脚本(Linux/macOS下为
clion.sh,Windows下可修改快捷方式的启动命令) - 在脚本开头添加:
source /path/to/your/env.sh - 保存后通过该脚本启动CLion,所有后续操作都会自动带上env.sh的环境变量。
内容的提问来源于stack exchange,提问作者Pope B.Lei
相关产品推荐
相关产品推荐

