在 Ubuntu 下使用 C++ 时设置环境变量,常见有 三种场景。下面按使用频率说明,并给出示例。
export MY_VAR=123
#include <iostream>
#include <cstdlib>
int main() {
const char* value = std::getenv("MY_VAR");
if (value) {
std::cout << "MY_VAR = " << value << std::endl;
} else {
std::cout << "MY_VAR not set" << std::endl;
}
return 0;
}
⚠️ 只在当前终端有效,关闭终端即失效。
编辑:
nano ~/.bashrc
# 或 ~/.zshrc(如果你用 zsh)
添加:
export MY_VAR=hello
生效:
source ~/.bashrc
✅ 只对当前用户生效
sudo nano /etc/environment
添加:
MY_VAR=hello
⚠️ 不需要 export,重启或重新登录后生效
setenv(推荐)#include <cstdlib>
int main() {
setenv("MY_VAR", "cpp_value", 1); // 第三个参数 1 表示覆盖
}
putenv(不推荐)putenv("MY_VAR=cpp_value");
⚠️ 只在当前进程及其子进程有效
export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
g++ main.cpp -I/usr/local/include -L/usr/local/lib -lmylib
MY_VAR=123 ./a.out
✅ 不影响系统环境
| 场景 | 方法 |
|---|---|
| 临时测试 | export |
| 永久生效 | ~/.bashrc / /etc/environment |
| C++ 读取 | std::getenv() |
| C++ 设置 | setenv() |
| 编译相关 | CPLUS_INCLUDE_PATH |
| 运行参数 | VAR=value ./程序 |
如果你有 具体场景(如 CMake、交叉编译、Docker、ROS、CUDA),可以告诉我,我给你精确配置示例。