linux - 如何在qmake中获取发行版名称和操作系统版本

标签 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中的这个有什么想法吗?

最佳答案

您可以使用条件赋值(参见 Scopes and Contitions),例如。

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

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

关于linux - 如何在qmake中获取发行版名称和操作系统版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31332581/

相关文章:

c - c语言中这个关键字是什么意思

python - 在 Windows 上将原始数据写入物理磁盘(闪存驱动器)失败并显示 "Bad file descriptor"- Python

python - Qt 和 PyQt 表小部件不断增长的行数

c++ - 通过 TCP 将图像从 labVIEW 发送到 QT

java - 通过 sh 脚本启动 jar 工作正常,但通过 crontab 给出 ClassFormatError

linux - 如何删除未连接的折叠

c - 如何从 c 头文件中提取函数原型(prototype)以实现自动完成功能

windows - 如何检查批处理文件中的文件是否存在

windows - 如何比较文件列表的大小并取最大的?

c++ - GraphicsScene 中的轴承公式计算产生不稳定的结果