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
相关推荐
SummerGao.4 分钟前
Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory
c++·windows·qt·cmake·visual studio·setup factory
仟濹9 分钟前
【二分搜索 C/C++】洛谷 P1873 EKO / 砍树
c语言·c++·算法
YH_DevJourney39 分钟前
Linux-C/C++《C/8、系统信息与系统资源》
linux·c语言·c++
威哥爱编程1 小时前
Linux驱动开发13个实用案例
linux
去看日出1 小时前
Linux(centos)系统安装部署MySQL8.0数据库(GLIBC版本)
linux·数据库·centos
qq_448941081 小时前
10、k8s对外服务之ingress
linux·容器·kubernetes
Igallta_8136222 小时前
【小游戏】C++控制台版本俄罗斯轮盘赌
c语言·开发语言·c++·windows·游戏·游戏程序
D-river2 小时前
【如何基于Debian构建Kali Linux】
linux·网络·安全·网络安全
在雨中6123 小时前
【找工作】C++和算法复习(自用)
c++·算法
年轮不改3 小时前
ARM-Linux 基础项目篇——简单的视频监控
linux·arm开发