CMake获取HOSTNAME环境变量

时间:2017-09-08 15:25:46

标签: linux bash ubuntu cmake environment-variables

我将HOSTNAME和USER定义为环境变量(Linux Ubuntu)

echo $USER
pvicente
echo $HOSTNAME
glace

我使用

在CMakeLists.txt中获取变量
message("-- USER environment variable is set to: " $ENV{USER})
message("-- HOSTNAME environment variable is set to: " $ENV{HOSTNAME})

但检测到USER而不是HOSTNAME

输出

-- USER environment variable is set to: pvicente
-- HOSTNAME environment variable is set to:

2 个答案:

答案 0 :(得分:5)

您可以查看CMake使用

查看的环境变量
$ cmake -E environment

它在名为NAME的环境变量中提供我的主机名。所以试试:

message("-- USER environment variable is set to: " $ENV{USER})
message("-- HOSTNAME environment variable is set to: " $ENV{NAME})

但官方的跨平台CMake方式是:

cmake_host_system_information(RESULT _host_name QUERY HOSTNAME)
message("-- _host_name variable is set to: " ${_host_name})

<强>参考

答案 1 :(得分:0)

注意:我不能与cmake合作,所以我做了一些谷歌搜索并提出了以下内容......比我能评论的内容多一点......

根据第一篇文章@ this link

  • sh -c echo \$HOSTNAME =&gt; ...没有... ; HOSTNAME (自动)设置在sh shell
  • bash -c echo \$HOSTNAME =&gt;糖渍在HOSTNAME shell
  • 下设置bash (自动)
  • cmakesh shell下运行命令,因此HOSTNAME无法使用cmake

在相同链接的底部,建议使用site_name()功能...

SITE_NAME(mySite)             => obtain hostname and place in variable 'mySite'
MESSAGE(mySite='${mySite}')

...似乎与(稀疏)文档(site_name() documentation

一起生活