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
相关推荐
mjhcsp9 分钟前
C++ 递推与递归:两种算法思想的深度解析与实战
开发语言·c++·算法
_OP_CHEN14 分钟前
算法基础篇:(三)基础算法之枚举:暴力美学的艺术,从穷举到高效优化
c++·算法·枚举·算法竞赛·acm竞赛·二进制枚举·普通枚举
m0_7482480221 分钟前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
java·开发语言·c++·算法
小狗爱吃黄桃罐头41 分钟前
正点原子【第四期】Linux之驱动开发学习笔记-10.1 Linux 内核定时器实验
linux·驱动开发·学习
卡提西亚42 分钟前
一本通网站1122题:计算鞍点
c++·笔记·编程题·一本通
im_AMBER1 小时前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
HLJ洛神千羽1 小时前
C++程序设计实验(黑龙江大学)
开发语言·c++·软件工程
滨HI01 小时前
C++ opencv拟合直线
开发语言·c++·opencv
Kang强1 小时前
tcpdump 抓到 icmp 包,但是抓不到 tcp 包??
linux
demodashi6662 小时前
Linux下ag搜索命令详解
linux·运维·windows