CMake 调用环境变量
目录
CMake调用环境变量
查看环境变量
使用$ENV{NAME}指令,例如,
message(STATUS "HOME dir: $ENV{HOME}")
设置环境变量
使用set函数 + ENV指令
set(ENV{变量名} 值)
注意:
1)读环境变量时,需要加上\(;写环境变量时,不需要加\)。
2)cmake文件内定义的环境变量仅用于cmake编译过程,不能用于目标程序。
示例
CMakeLists.txt
message("myenvvar: $ENV{myenvvar}")
# 定义环境变量myenvvar
set(ENV{myenvvar} "123")
message("myenvvar: $ENV{myenvvar}")
运行cmake结果
myenvvar:
myenvvar: 123
C程序中调用环境变量
回顾在C程序中,如何调用环境变量
使用getenv,查看环境变量
#include <stdlib.h>
// 返回指向value的指针,若未找到则为NULL
char *getenv(const char *name);
使用putenv,设置环境变量
#include <stdlib.h>
// 以 "var_name=value"的形式设置环境变量
int putenv(char *string);
使用setenv,设置环境变量
仅用于Unix/Linux,不适用于Windows
#include <stdlib.h>
// 通过name, value参数来设置环境变量, name = value
// 参数overwrite为0时, name对应值不会改变, 返回0; overwrite非0时, name对应值才会改变, 成功返回0, 失败返回-1并设置errno
int setenv(const char *name, const char *value, int overwrite);
使用unsetenv,删除环境变量
仅用于Unix/Linux,不适用于Windows
#include <stdlib.h>
int unsetenv(const char *name);
示例
如果是在Windows平台,可能还需要添加宏定义_CRT_SECURE_NO_WARNINGS,防止使用getenv带来的警告。
#include <stdlib.h>
int main()
{
char* s;
s = ::getenv("x");
printf("case 1 x = %s\n", s);
::putenv("x=456"); // 注意"="前后不能有空格
s = ::getenv("x");
printf("case 2 x = %s\n", s);
return 0;
}
本文作者:明明1109
本文链接:https://www.cnblogs.com/fortunely/p/16296762.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
标签:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-05-22 如何创建守护进程?