• ベストアンサー

linux gcc 特有のプリプロセッサ定義は?

たとえば、Windows で Visual studio を使えばプリプロセッサで _WIN32 が必ず定義されていて、違う環境と共有のソースでも Windows 特有の処理の記述が出来ます。linux で gcc を使っている時の同じようなプリプロセッサの定義はなんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

gcc付属のcpp(1)のマニュアルの「-dM」オプションの項に載っている方法ですが、 >touuch foo.h; cpp -dM foo.h で、確認できます。 Linuxでは確認していませんが、手元のFreeBSD環境では、 |#define __GNUC__ 3 |#define __FreeBSD__ 6 |#define __unix__ 1 等がその出力結果の中にありました。 (Linux環境なら多分「__Linux__」か「__LINUX__」があると思います。)

moritan2
質問者

お礼

さっそくお答えいただきありがとうございました。 cpp -dM がとても役に立ちました。 不思議なことに cc あるいは gcc だと-dM が使えませんね。でも、__GNUC__ がgccでも定義済みであることを確認できましたので、問題は解決いたしました。

その他の回答 (1)

回答No.2

#1です。すみません。typoの訂正です。 ×「touuch foo.h」 ○「touch foo.h」