2012-09-26 35 views
5

Duplicar posibles:
Detecting CPU architecture compile-time¿Detectar para qué CPU de destino se configuró un GCC?

¿Existe una definición que los conjuntos de GCC que indica qué CPU (x86/amd64/ppc/etc) GCC está configurado para?

Así que puedo usarlo como:

#ifdef PPCARCH 
    dosomething(); 
#endif 
+0

para código compilado o gcc sí mismo? – Aftnix

+1

http://sourceforge.net/apps/mediawiki/predef/index.php?title=Architectures - pero no estoy seguro de qué tan preciso es esto. –

+0

@Banthar, lo aceptaría como respuesta. –

Respuesta

5

para detectar la arquitectura en tiempo de compilación en el código fuente usar una macro predefinida.

De acuerdo con esta article, siempre tendrá un nombre en una forma _arch_ o __arch__ donde el arco es el nombre de la arquitectura destino. Para ver qué es exactamente definida, use el siguiente comando:

touch foo.h; cpp -dM foo.h; rm foo.h 

lo que imprimirá todas las macros predefinidas.

Para imprimir en la línea de comando, vamos a:

gcc -dumpmachine 

se mostrará el objetivo de la GCC es está construido para.

+0

Creo que no estaba claro, así que actualicé mi pregunta. –

+0

@AmigableClarkKant Actualicé la respuesta para reflejar su aclaración – Serge

Cuestiones relacionadas