温馨提示×

ubuntu c++如何设置环境变量

小樊
41
2026-08-28 11:50:04
栏目: 编程语言

Ubuntu 下使用 C++ 时设置环境变量,常见有 三种场景。下面按使用频率说明,并给出示例。


一、在终端中设置(临时,最常用)

1️⃣ 设置环境变量

export MY_VAR=123

2️⃣ C++ 程序中读取

#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;
}

⚠️ 只在当前终端有效,关闭终端即失效。


二、在 shell 配置文件中设置(永久)

1️⃣ 用户级(推荐)

编辑:

nano ~/.bashrc
# 或 ~/.zshrc(如果你用 zsh)

添加:

export MY_VAR=hello

生效:

source ~/.bashrc

✅ 只对当前用户生效


2️⃣ 系统级(所有用户)

sudo nano /etc/environment

添加:

MY_VAR=hello

⚠️ 不需要 export,重启或重新登录后生效


三、在 C++ 程序中设置(运行时)

1️⃣ 使用 setenv(推荐)

#include <cstdlib>

int main() {
    setenv("MY_VAR", "cpp_value", 1);  // 第三个参数 1 表示覆盖
}

2️⃣ 使用 putenv(不推荐)

putenv("MY_VAR=cpp_value");

⚠️ 只在当前进程及其子进程有效


四、编译时设置(如 include / lib 路径)

1️⃣ 设置头文件路径

export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH

2️⃣ 设置库路径

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

3️⃣ 编译示例

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),可以告诉我,我给你精确配置示例。

0