2012-09-26 10 views
5

Powiel możliwe:
Detecting CPU architecture compile-timeWykryj docelowy procesor, do którego skonfigurowano GCC?

Czy istnieje określić, że zestawy GCC który opowiada który procesor (x86/amd64/ppc/etc) jest skonfigurowany do GCC?

Więc mogę używać go jak:

#ifdef PPCARCH 
    dosomething(); 
#endif 
+0

dla samego skompilowanego kodu lub gcc? – Aftnix

+1

http://sourceforge.net/apps/mediawiki/predef/index.php?title=Architectures - ale nie jestem pewien, jak dokładne jest to. –

+0

@Banthar, zaakceptowałbym to dla odpowiedzi. –

Odpowiedz

5

Aby wykryć architekturę w czasie kompilacji w kodzie źródłowym użyć gotowego makro.

Zgodnie z tym article, zawsze będzie mieć nazwę w postaci _arch_ lub __arch__, gdzie łuk jest nazwą docelowej architektury. Aby zobaczyć, co dokładnie zdefiniowano, użyj następującego polecenia:

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

Zostanie wydrukowane wszystkie wstępnie zdefiniowane makra.

Aby drukować w wierszu polecenia, spróbuj:

gcc -dumpmachine 

pokaże cel GCC jest zbudowany.

+0

Myślę, że byłem niejasny, więc zaktualizowałem moje pytanie. –

+0

@AmigableClarkKant Zaktualizowałem odpowiedź, aby odzwierciedlić Twoje wyjaśnienia – Serge