如何在qmake中获取OS的分发名称和版本

时间:2015-07-10 04:41:09

标签: linux windows qt debian qmake

我想在qmake中获取操作系统的分发名称和版本名称。对于Linux,在某些发行版(Debian,Ubuntu,CentOS,...)中,我使用了:

DISTRIBUTION = $$system(cat /etc/issue | cut -d\' \' -f1)
message($$DISTRIBUTION)
OSVERSION = $$system(cat /etc/issue | cut -d\' \' -f3)
message($$OSVERSION)

在我的Debian 7.8上,输出是:

Project MESSAGE: Debian
Project MESSAGE: 7

这是正确的结果。但我不确定这种方式。 我也在寻找Windows:Windows 7,8,......

你对qmake有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用条件分配(参见Scopes and Contitions)ex。

win32:DISTRIBUTION = $$system(systeminfo | findstr /B /C:"OS Name")
unix:DISTRIBUTION = $$system(cat /etc/issue | cut -d\' \' -f1)
message($$DISTRIBUTION)

这样,代码只能在特定平台上执行。我提供的Windows命令不是你想要的,它用版本打印整个系统名称,你必须以某种方式修改它。