2015-07-10 370 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

相關問題