介绍

由于业务的需要,经常在不同的操作系统平台编写代码,各个系统平台(编译器)下的接口总有差异,越往底层走差异越大,比如摄像头,在Windows下它可以是一个通用的camera,但是在Linux下你得写V4L2视频采集的驱动。怎么办,你只能用一些条件编译的方法把不同操作系统的个性化处理隔离开,这就需要使用跨平台的宏定义了

编译器相关

__aarch64__ :特指aarch64编译器,如RK3588、XILINX ZU3EG平台

__linux__ :Linux操作系统,arm或者x64均适用

_WIN64:编写x64应用时的宏定义,表示是64位的MSVC编译器

_WIN32:编写x32应用时的宏定义,表示是32位的MSVC编译器

WIN32:这个是Windows平台的gcc内置的宏定义

QT相关

Q_OS_WIN:表示当前系统为Windows

Q_OS_WIN32:表示当前开发程序为win32应用

Q_OS_WIN64:表示当前开发程序为win64应用

Q_OS_WINDOWS:表示当前系统为Windows

Q_OS_LINUX:表示当前系统为Linux,这个宏好像没有什么用,识别不了Ubuntu20.04系统

Q_OS_MAC:表示当前系统为mac

Q_OS_FREEBSD:表示当前系统为FreeBSD

Q_OS_ANDROID:表示当前系统为Android

参考


© 2025 hywing 使用 Stellar 创建
总访问 113701 次 | 本页访问 326