簡體   English   中英

如何在 QT5 中獲取基於 Linux 的系統

[英]How to get Linux based system in QT5

我正在使用 c++ 在 qt5 上開發一個應用程序,它將支持所有流行的發行版,為此我目前正在使用 QSysInfo

 qDebug() << "currentCpuArchitecture():" << QSysInfo::currentCpuArchitecture();
    qDebug() << "productType():" << QSysInfo::productType();
    qDebug() << "productVersion():" << QSysInfo::productVersion();
    qDebug() << "prettyProductName():" << QSysInfo::prettyProductName();

它返回 ubuntu,manjaro... 在 prettyProductName 中,我實際上需要一個像 Debian,arch... Tia 這樣的基本系統

所有 Linux 發行版都只是 Linux 因此您需要閱讀發行版特定的值:

$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

這些文件是特定於發行版的,並且這些文件中的信息也是特定於發行版的,因此文件和字段可能因發行版而異。 有些發行版甚至可能沒有它們

同樣,在大多數常見發行版中都有一個名為lsb_release的通用工具,如果存在,您可以檢查其 output

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:    20.04
Codename:   focal

如果一個稀有的發行版沒有這些,那么你可能不走運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM