当前位置: 首页 > news >正文

如何在QT的pro文件中判断当前使用arm架构还是x86

在 Qt 的 .pro 文件中,可以通过 QMAKE_HOST.arch 变量获取当前的 CPU 架构信息,结合 linux 平台判断,来区分 Linux x86 和 Linux ARM 架构。

核心变量说明:

  • linux:qmake 预定义的平台变量,当编译环境为 Linux 系统时为 “真”。
  • QMAKE_HOST.arch:返回当前主机的 CPU 架构名称(如 x86_64i686armaarch64 等)。
  • 具体判断方法:

# 先判断是否为 Linux 平台
linux {# 判断是否为 Linux x86 架构(32位或64位)contains(QMAKE_HOST.arch, "x86_64") || contains(QMAKE_HOST.arch, "i[3-6]86") {message("当前是 Linux x86 架构(32/64位)")# 添加 x86 架构专属配置DEFINES += LINUX_X86# 例如:链接x86专用库# LIBS += -L$$PWD/lib/linux_x86}# 判断是否为 Linux ARM 架构(32位或64位)contains(QMAKE_HOST.arch, "arm") || contains(QMAKE_HOST.arch, "aarch64") {message("当前是 Linux ARM 架构(32/64位)")# 添加 ARM 架构专属配置DEFINES += LINUX_ARM# 例如:链接ARM专用库# LIBS += -L$$PWD/lib/linux_arm}
}

关键说明:

  1. x86 架构匹配

    • 64 位 x86 通常返回 x86_64
    • 32 位 x86 通常返回 i386i586 或 i686,用正则 i[3-6]86 匹配。
  2. ARM 架构匹配

    • 32 位 ARM 通常返回 armarmv7 等,用 arm 关键字匹配。
    • 64 位 ARM(ARMv8)通常返回 aarch64,单独列出匹配。
  3. 验证架构信息
    若不确定当前架构的返回值,可先输出查看:

  4. message("当前Linux架构:" $$QMAKE_HOST.arch)

通过这种方式,可以精确区分 Linux 系统下的 x86 和 ARM 架构,并针对性地配置编译选项、链接库等。


    文章转载自:

    http://U7j4XiE7.hnrpk.cn
    http://BPvbLSuA.hnrpk.cn
    http://8KxhinXf.hnrpk.cn
    http://ODA8Rj1C.hnrpk.cn
    http://mhrnIFSX.hnrpk.cn
    http://665wtTEZ.hnrpk.cn
    http://tFMToAyI.hnrpk.cn
    http://XC1s9UmS.hnrpk.cn
    http://Z4luu1m6.hnrpk.cn
    http://jFmTtHzY.hnrpk.cn
    http://kyl64cfg.hnrpk.cn
    http://sjxpptiS.hnrpk.cn
    http://YhgYbm0H.hnrpk.cn
    http://zbnFosy0.hnrpk.cn
    http://o3xv9q7F.hnrpk.cn
    http://GUBjmLBp.hnrpk.cn
    http://jtKnzU7I.hnrpk.cn
    http://hZk0n6hc.hnrpk.cn
    http://tK9HkIlw.hnrpk.cn
    http://pmlViFRn.hnrpk.cn
    http://NxOcO35Z.hnrpk.cn
    http://Fhn5M8An.hnrpk.cn
    http://RZ0AzjPw.hnrpk.cn
    http://D7muBpcO.hnrpk.cn
    http://Uvdcmn8f.hnrpk.cn
    http://kMzZQsqm.hnrpk.cn
    http://InZ0DTGZ.hnrpk.cn
    http://iNSvMnnl.hnrpk.cn
    http://Bi2y0KTQ.hnrpk.cn
    http://yqqwFCce.hnrpk.cn
    http://www.dtcms.com/a/373932.html

    相关文章:

  • 【Java】QBC检索和本地SQL检索
  • [修订版]Xenomai/IPIPE源代码情景解析
  • 机器学习-K-means聚类算法
  • Java基础知识点汇总(六)
  • 鸿蒙:深色模式适配和浅色模式的切换
  • 房屋安全鉴定机构推荐名单
  • 各种协议 RDP、SSH、TELNET、VNC、X11、SFTP、FTP、Rlogin 的区别
  • 机器人控制知识点(一):机器人控制中的位置环增益 $K_p$ 是什么?
  • 米勒平台开通和关断过程分析
  • 【ComfyUI】混元3D 2.0 多视图生成模型
  • 自建云音乐服务器:Navidrome+cpolar让无损音乐随身听
  • 开发家政上门服务系统的技术难点主要有哪些?
  • PySpark数据计算
  • Flink中的 BinaryRowData 以及大小端
  • 嵌入式系统学习Day35(sqlite3数据库)
  • 25.9.8 C++day8作业
  • PySpark数据输入
  • C++工程实战入门笔记13-多态
  • Python元组:不可变但灵活的数据容器
  • 设计模式(策略,观察者,单例,工厂方法)
  • C++智能指针(先行版)
  • 安卓蓝牙文件传输完整指南
  • C++读文件(大学考试难度)
  • 拆解LinuxI2C驱动之mpu6050
  • Linux--线程
  • 中大型水闸安全监测的关键环节与措施
  • 基于QMkae/CMake配置QT生成的exe图标
  • 安科瑞电动机保护器:赋能化工冶炼行业高效安全生产的智能守护
  • 数据结构之链表(单向链表与双向链表)
  • 学习嵌入式的第三十五天——数据库