C++调试经验:在Qt工程中区分windows、arm linux和x86 linux平台

1. 前言

代码区分平台的目的是为了使代码在不同平台上能够正确编译和运行,确保软件在各个平台上具有相同的功能和性能。在Qt工程中,区分不同平台的代码可以帮助我们处理平台相关的差异。通过代码区分平台,我们可以更加方便地进行跨平台的开发和移植工作,减少平台相关的问题和工作量,提高代码的可维护性和可移植性。

2. 在pro文件中区别平台

bash 复制代码
# 1. 区分windows平台
win32{
    # 链接windows下的库

}

# 2. 区分linux平台
uinx{
    message($$QT_ARCH)  # 打印当前平台架构
    # 2.1 区分x86 linux 平台
    contains(QT_ARCH, x86_64){ 
        #  链接x86 linux下的库

    }
    # 2.2 区分arm64 linux 平台
    contains(QT_ARCH, arm64) {  
        #  链接区分arm64 linux下的库

    }  
}

3. 在C++代码中区别平台

bash 复制代码
/** windows平台 */
#ifdef __WIN32__
#include <winsock2.h>   // 示例
#endif

/** linux平台 */
#ifdef __linux__
#include <sys/socket.h>   // 示例
#include <netinet/in.h>
#include <arpa/inet.h>
#endif

/** x86平台 */
#ifdef __x86_64__ 
    // todo...
#endif

/** arm64平台 */
#ifdef __aarch64__
    // todo...
#endif
相关推荐
ReaF_star几秒前
【环保】CentOS 7 安装 MySQL 8 实战记录:从安装到排障一次讲清
linux·mysql·centos
雾岛听蓝2 分钟前
Qt操作指南:状态栏、浮动窗口与对话框使用
开发语言·经验分享·笔记·qt
兩尛4 分钟前
c++面试常问1
jvm·c++·面试
怀旧,14 分钟前
【Linux系统编程】18. Linux进程信号(上)
linux·运维·服务器
点云侠15 分钟前
隧道中线提取的优化方法
c++·算法·最小二乘法
汉克老师28 分钟前
GESP2023年6月认证C++三级( 第二部分判断题(1-10))
c++·数组·位运算·进制·gesp三级·gesp3级
minji...30 分钟前
Linux 线程同步与互斥(五) 日志,线程池
linux·运维·服务器·开发语言·c++·算法
6Hzlia42 分钟前
【Hot 100 刷题计划】 LeetCode 108. 将有序数组转换为二叉搜索树 | C++ 分治法详解
c++·算法·leetcode
兩尛1 小时前
c++面试常问2
开发语言·c++·面试
华清远见IT开放实验室1 小时前
嵌入式系统化课程 学习内容与服务说明
linux·stm32·学习·嵌入式·全栈·虚拟仿真·测评中心