2012-09-26 11 views
5

可能性の重複:
Detecting CPU architecture compile-timeGCCが設定したターゲットCPUを検出しますか?

が存在するCPU(x86の/ AMD64/PPCの/ etc)GCCがために設定されて伝えることGCCのセットを定義?

ので、私はそれが好きで使用することができます:

#ifdef PPCARCH 
    dosomething(); 
#endif 
+0

コンパイル済みコードまたはgcc自体の場合? – Aftnix

+1

http://sourceforge.net/apps/mediawiki/predef/index.php?title=Architectures - しかし、私はどれくらい正確かは分かりません。 –

+0

@Banthar、私は答えにそれを受け入れるだろう。 –

答えて

5

は、事前定義されたマクロを使用するソースコードにコンパイル時にアーキテクチャを検出します。

このarticleによれば、名前は常に_arch_または__arch__という形式の名前になります。ここで、archはターゲットアーキテクチャの名前です。正確に定義された内容を確認するには、次のコマンドを使用します。

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

定義済みのすべてのマクロが印刷されます。

コマンドラインで印刷するには、試してみてください。

gcc -dumpmachine 

それはGCCがために構築されているターゲットが表示されます。

+0

私は不明であったと思うので、私は質問を更新しました。 –

+0

@AmigableClarkKantあなたの説明を反映するように答えを更新しました – Serge

関連する問題