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
相关推荐
luj_17682 小时前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法
广州山泉婚姻2 小时前
C/C++动态内存:堆内存的申请、使用与释放
c++·人工智能
weixin_450813532 小时前
pdf文档转为markdown文档
linux·pdf
我的小卷呀3 小时前
Linux ip 命令底层逻辑与实战指南
linux·运维·c语言·网络协议·tcp/ip·网络安全
Jackson_GJH3 小时前
日志_图解spdlog
开发语言·c++
hansang_IR3 小时前
【题解】P4454 [CQOI2018] 破解D-H协议
c++·算法·密码学·数论
梓䈑3 小时前
【动态规划系列】路径问题、子数组 和 子序列问题、背包问题
c++·算法·动态规划
handler013 小时前
【Linux】ELF、链接与动态库,程序装载全解析
linux·运维·服务器·chrome·c·elf·文件
aqiu1111113 小时前
【数位 DP / 记忆化搜索】蓝桥云课 - 光轨区的 AI 数 题解
c++·算法·蓝桥杯·数位dp
dishugj3 小时前
操作系统四大特征|软考架构师考点梳理
java·linux·服务器