マシンアーキテクチャを指定するマクロを定義するヘッダーは何ですか?

マシンアーキテクチャを指定するマクロを定義するヘッダーは何ですか?

問題の簡単なバージョン:

システムの機械アーキテクチャに対応するマクロ(例えば、、、__x86_64____ia64____mips__を含むCヘッダファイルは何ですか?

質問のより長いバージョン:

走りたい神経節モニタリングツールティレラLinuxを実行しているシステムに基づいています。

Gangliaは現在Tileraをサポートしていません。機能するには、次のファイルを変更する必要があります。マシンタイプ機能マシンアーキテクチャを返します。関数の本文は、コンパイル時に次のように決定されます。

g_val_t
machine_type_func ( void )
{
   g_val_t val;

#ifdef __i386__
   snprintf(val.str, MAX_G_STRING_SIZE, "x86");
#endif
#ifdef __x86_64__
   snprintf(val.str, MAX_G_STRING_SIZE, "x86_64");
#endif
...
   return val;
}

Tileraに適切な行を追加する必要がありますが、Tileraベースのシステムを指定するマクロ名がわかりません。このマクロは標準のLinuxヘッダファイルの1つで定義されているようですが、どのファイルを見るべきかわかりません。

ベストアンサー1

ヘッダーファイルはそれを定義しません。これらのマクロはコンパイラによって事前定義されています。事前定義されたマクロの完全なリストを見つけるには、次のようにします。

echo | gcc -E -dM -

次に、可能なマクロの結果を確認します。

おすすめ記事