2012-09-26 11 views
5

thể trùng lặp:
Detecting CPU architecture compile-timePhát hiện CPU mục tiêu nào được cấu hình cho GCC?

Có một định nghĩa mà bộ GCC mà nói mà CPU (x86/amd64/ppc/etc) GCC được cấu hình cho?

Vì vậy, tôi có thể sử dụng nó như:

#ifdef PPCARCH 
    dosomething(); 
#endif 
+0

cho mã được biên dịch hoặc gcc? – Aftnix

+1

http://sourceforge.net/apps/mediawiki/predef/index.php?title=Architectures - nhưng tôi không chắc chính xác điều này. –

+0

@Banthar, tôi chấp nhận câu trả lời đó. –

Trả lời

5

Phát hiện kiến ​​trúc tại thời gian biên dịch trong mã nguồn sử dụng một macro được xác định trước.

Theo điều này article, tên này luôn có tên dưới dạng _arch_ hoặc __arch__ trong đó vòm là tên kiến ​​trúc đích. Để xem chính xác những gì được xác định, hãy sử dụng lệnh sau:

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

Nó sẽ in ra tất cả các macro được xác định trước.

Để in ra trên dòng lệnh, hãy thử:

gcc -dumpmachine 

Nó sẽ hiển thị các mục tiêu GCC là được xây dựng cho.

+0

Tôi nghĩ rằng tôi không rõ ràng, vì vậy tôi đã cập nhật câu hỏi của mình. –

+0

@AmigableClarkKant Tôi đã cập nhật câu trả lời để phản ánh rõ ràng của bạn – Serge

Các vấn đề liên quan