一、用户变量和系统变量
在电脑“环境变量”设置中可以看到用户变量和系统变量,它们具有不同的作用和区别
1、用户环境变量
- 用户环境变量是与每个用户账户相关联的。
- 它们只对当前用户有效,不会影响其他用户。
- 用户环境变量可以存储用户特定的配置信息,例如用户偏好设置、个人路径等。
- 用户环境变量的设置对于每个用户来说是独立的,一个用户的变量不会影响其他用户。
- 用户环境变量的修改只对当前用户会话生效,当用户注销或重新登录时,修改的环境变量才会生效。
- 用户环境变量的编辑和管理通常由用户自身进行。
2、系统环境变量
- 系统环境变量是与整个操作系统相关联的。
- 它们对所有用户有效,适用于系统中的所有用户账户。
- 系统环境变量通常用于存储全局配置信息,例如系统路径、系统级别的库路径等。
- 系统环境变量的设置对于整个系统和所有用户都是共享的,一个用户的变量会影响其他用户。
- 系统环境变量的修改会立即生效,无需重新登录或注销。
- 系统环境变量的编辑和管理通常需要管理员权限。
总结起来,用户环境变量是与每个用户账户关联的,用于存储用户特定的配置信息,而系统环境变量是与整个操作系统关联的,用于存储全局配置信息。用户环境变量只对当前用户有效,而系统环境变量对所有用户有效。用户环境变量的修改需要重新登录才能生效,而系统环境变量的修改会立即生效。
二、环境变量与注册表的关系
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。
注册表(Registry,繁体中文版Windows操作系统称之为登录档案)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。环境变量与注册表都与软件设置信息相关,环境变量存储在注册表相应位置。
三、VS2019与系统变量中INCLUDE的关系
VS2019项目属性中的INCLUDE指定包含头文件,include命令
#include "../TEST/XXX.h"
在“包含目录”中有了TEST文件夹后可以改为
#include "XXX.h"
通过在 PowerShell 和 Developer PowerShell for VS 2019 中运行命令cl … 可以发现:系统变量中的INCLUDE和VS 2019项目属性中包含目录所起作用一样,但是作用范围不一样。当在命令行(PowerShell)中运行cl … 命令,包含目录由系统变量INCLUDE指定;当在VS 2019 (Developer PowerShell for VS 2019)中执行编译命令,包含目录由项目属性指定。