2015-07-10 98 views
1

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

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

您可以使用条件分配(请参阅Scopes and Contitions)前。

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

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

+0

也许我在本站的windows下找到了一个昂贵的systeminfo调用的替代方法: http://www.windows-commandline.com/find-windows-os-version-from-command/ 这个命令产生一个等效的用于测试的字符串: 'wmic os get Caption,CSDVersion/value' – tomy

相关问题