我将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:
答案 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
(自动)
cmake
在sh
shell下运行命令,因此HOSTNAME
无法使用cmake
在相同链接的底部,建议使用site_name()
功能...
SITE_NAME(mySite) => obtain hostname and place in variable 'mySite'
MESSAGE(mySite='${mySite}')
...似乎与(稀疏)文档(site_name() documentation)
一起生活