Cuando el código C/C++ implementa la compilación multiplataforma, básicamente llamará a las funciones del sistema. En este momento, las definiciones de macro en diferentes sistemas se pueden usar para lograr la compilación multiplataforma. El sistema se divide principalmente en Windows, Linux y Mac. La arquitectura se refiere principalmente a la arquitectura bajo Linux, y las más utilizadas son las arquitecturas x86, arm y mips.
Definición de macros del sistema de Windows
La CPU de la plataforma Windows está dividida en dos por Intel y AMD , ambas son arquitectura x86
La definición macro del sistema de ventanas es_WIN32
Definición de macros del sistema Linux
La definición macro del sistema Linux es__linux__
Según la arquitectura, el sistema Linux se divide en arquitectura x86, arquitectura arm y arquitectura mips.
Los chips de arquitectura x86 son principalmente Intel y AMD Los sistemas ubuntu y centos que instalamos en la máquina virtual de Windows pertenecen a la arquitectura x86. Los chips domésticos con arquitectura x86 son principalmente Zhaoxin
La macro de arquitectura x86 de 64 bits se define como__x86_64__
La macro de arquitectura x86 de 32 bits se define como__i386__
Los chips de arquitectura Arm incluyen principalmente Feiteng y Kunpeng
La macro de arquitectura arm se define como__brazo__
Los chips de arquitectura MIPS incluyen principalmente Godson
La macro de arquitectura mips se define como__mips__
Al codificar, en términos generales, no es necesario distinguir la arquitectura detallada en el sistema Linux, y la API del sistema es básicamente universal, a menos que haya necesidades especiales y la arquitectura deba distinguirse.
Definición de macros del sistema Mac
La definición macro del sistema mac es__MANZANA__
Los chips utilizados en el sistema mac incluyen Intel, M1 y M2, pero debido a que el sistema Mac es muy compatible con diferentes chips, no necesita prestar atención al chip y la arquitectura del sistema mac al codificar. Usar directamente__MANZANA__Eso es todo.
Implementación de codificación
Las diferentes plataformas y arquitecturas se pueden distinguir por las siguientes definiciones de macro