新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


programing:c-language:compiler-os-macro-define


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programing:c-language:compiler-os-macro-define [2019/07/22 10:21] – [テーブル] yokoprograming:c-language:compiler-os-macro-define [2022/08/04 12:31] (現在) – [テーブル] yoko
行 1: 行 1:
-定義済みマクロによるコンパイラ及びOS判定 +C言語で定義済みマクロによるコンパイラ及びOS判定 
-===================================== +=========================================== 
-C言語で様々OSやコンパイラ共通ソースにする、条件コンパイルで切換えたい場合がある。その時に利用するマクロ名について、備忘録を残す。+C言語で様々OSやコンパイラ共通ソースにしたい時、条件コンパイルで切換えたい場合がある。その時に利用するマクロ名について、備忘録を残す。
  
 定義済みマクロ名 定義済みマクロ名
 --------------- ---------------
 +定義済みマクロは、下記コマンドで確認できる。
 +
 +<code bash>
 +$ echo | gcc -dM -E -
 +</code>
 +
 +<code bash>
 +$ echo | arm-none-eabi-gcc -dM -E -
 +</code>
  
 ### コンパイラ判定 ### コンパイラ判定
-^ コンパイラ名     ^ マクロ名                ^ 定義値      ^ 備考 +^ コンパイラ          ^ マクロ名            ^ 定義値          ^ 備考 
-| GCC        | `__GNUC__`          | バージョン番号     +| GCC                 | `__GNUC__`          | バージョン番号       | 
-| IAR EWARM  | `__ICCARM__`        |              +| GCC/ARM             | `__arm__`                                 
-| ARMコンパイラ   | ` __ARMCC_VERSION`          |     |+| IAR EWARM           | `__ICCARM__`        |                       
 +| ARMコンパイラ       | ` __ARMCC_VERSION`                       | 
 +| インテルコンパイラ  | `__INTEL_COMPILER`  |                       | 
 +| Borland C++         | `__BORLANDC__`      |                       | 
 +| Appleコンパイラ     | `__APPLE__`                               |
  
  
行 21: 行 34:
 | msys2(32bit)    | `__MINGW32__`  |      |                | | msys2(32bit)    | `__MINGW32__`  |      |                |
 | msys2(64bit)    | `__MINGW64__`  |      |                | | msys2(64bit)    | `__MINGW64__`  |      |                |
 +| Cygwin          | `__CYGWIN__`        |                |
 +| macOS           | `__MACH__`          |                |
 +
 +### 64bit環境判定
 +^ 実行環境            ^ マクロ名           ^ 定義値  ^ 備考             ^
 +| Linux/macOS        | `__x86_64`        |        |                  |
  
  
行 29: 行 48:
 2. [[https://firewood.hatenadiary.jp/entries/2005/06/01|cross platform development]] 2. [[https://firewood.hatenadiary.jp/entries/2005/06/01|cross platform development]]
 3. [[http://tekitobibouroku.blog42.fc2.com/blog-entry-39.html|条件コンパイル(インテルコンパイラ icc の判別)]] 3. [[http://tekitobibouroku.blog42.fc2.com/blog-entry-39.html|条件コンパイル(インテルコンパイラ icc の判別)]]
 +4. [[https://qiita.com/naohikowatanabe/items/a4e1a3f8080210257a42|gcc のプリプロセッサの定義済みマクロ(Predefined Macros)の確認方法]]
 +5. [[https://tech.ckme.co.jp/cpp/cpp_predef.shtml|コンパイラの種類とバージョンを知るためのpre-defineされたマクロは?]]
 +6. [[https://wiki.onakasuita.org/pukiwiki/?GCC%2F%E5%AE%9A%E7%BE%A9%E6%B8%88%E3%81%BF%E3%83%9E%E3%82%AF%E3%83%AD%2FARM|GCC/定義済みマクロ/ARM]]
  
programing/c-language/compiler-os-macro-define.1563758471.txt.gz · 最終更新: 2019/07/22 10:21 by yoko