Linux CMake get HOSTNAME环境变量
我将主机名和用户定义为环境变量(Linux Ubuntu) 我使用Linux CMake get HOSTNAME环境变量,linux,bash,ubuntu,cmake,environment-variables,Linux,Bash,Ubuntu,Cmake,Environment Variables,我将主机名和用户定义为环境变量(Linux Ubuntu) 我使用 message("-- USER environment variable is set to: " $ENV{USER}) message("-- HOSTNAME environment variable is set to: " $ENV{HOSTNAME}) 但检测到的是用户,而不是主机名 输出为 -- USER environment variable is set to: pvicente -- HOSTNAME
message("-- USER environment variable is set to: " $ENV{USER})
message("-- HOSTNAME environment variable is set to: " $ENV{HOSTNAME})
但检测到的是用户,而不是主机名
输出为
-- USER environment variable is set to: pvicente
-- HOSTNAME environment variable is set to:
注意:我不使用
cmake
,所以我在谷歌上搜索了一下,得出了以下结论。。。有点超出了我的评论范围
根据第一篇帖子@this:
=>…什么都没有<代码>主机名为非 (自动)在sh-c echo\$HOSTNAME
shell下设置sh
=>glace<代码>主机名是在bash-c echo\$HOSTNAME
shell下(自动)设置的bash
在cmake
shell下运行命令,因此sh
将不可用于HOSTNAME
cmake
site\u name()
函数
SITE_NAME(mySite) => obtain hostname and place in variable 'mySite'
MESSAGE(mySite='${mySite}')
。。。这似乎与(稀疏的)文档()不一致。您可以检查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})
参考
\u host\u name
而不仅仅是host\u name
?
cmake_host_system_information(RESULT _host_name QUERY HOSTNAME)
message("-- _host_name variable is set to: " ${_host_name})