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
相关推荐
好好学习啊天天向上4 小时前
C盘容量不够,python , pip,安装包的位置
linux·python·pip
li_wen014 小时前
文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
大数据·linux·数据库·文件系统·jffs2
wypywyp5 小时前
2.虚拟机一直显示黑屏,无法打开,可能是分配的硬盘空间不够
linux·运维·服务器
SongYuLong的博客5 小时前
TL-WR710N-V2.1 硬改刷机OpenWRT源码编译固件
linux·物联网·网络协议
AlfredZhao5 小时前
Docker 快速入门:手把手教你打包 Python 应用
linux·docker·podman
imX2G6 小时前
爆破小游戏2.0
c++
HIT_Weston6 小时前
107、【Ubuntu】【Hugo】搭建私人博客:模糊搜索 Fuse.js(三)
linux·javascript·ubuntu
Cx330❀7 小时前
【优选算法必刷100题】第41-42题(模拟):Z 字形变换,外观数列
c++·算法
Cx330❀7 小时前
【优选算法必刷100题】第038题(位运算):消失的两个数字
开发语言·c++·算法·leetcode·面试
燃于AC之乐7 小时前
我的算法修炼之路--5——专破“思维陷阱”,那些让你拍案叫绝的非常规秒解
c++·算法·贪心算法·bfs·二分答案·扩展域并查集·动态规划(最长上升子序列)