标签:调用 CMake name myenvvar getenv char ENV 环境变量
目录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;
}
参考:https://www.cnblogs.com/fortunely/p/14587625.html
标签:调用,CMake,name,myenvvar,getenv,char,ENV,环境变量 来源: https://www.cnblogs.com/fortunely/p/16296762.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。