新石器Wiki

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

ユーザ用ツール

サイト用ツール


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


差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programing:c-language:compiler-os-macro-define [2021/05/04 11:44] – [参考] yokoprograming:c-language:compiler-os-macro-define [2024/11/18 11:38] (現在) – [テーブル] yoko
行 3: 行 3:
 C言語で様々なOSやコンパイラで共通ソースにしたい時、条件コンパイルで切換えたい場合がある。その時に利用するマクロ名について、備忘録を残す。 C言語で様々なOSやコンパイラで共通ソースにしたい時、条件コンパイルで切換えたい場合がある。その時に利用するマクロ名について、備忘録を残す。
  
-定義済みマクロ名 +===== 定義済みマクロ名 =====
----------------+
 定義済みマクロは、下記コマンドで確認できる。 定義済みマクロは、下記コマンドで確認できる。
  
行 11: 行 10:
 </code> </code>
  
-### コンパイラ判定 +<code bash> 
-^ コンパイラ          ^ マクロ名            ^ 定義値          ^ 備考  ^ +$ echo arm-none-eabi-gcc -dM -E - 
-GCC                 | `__GNUC__`          | バージョン番号  |       | +</code>
-| IAR EWARM           | `__ICCARM__`        |                       | +
-| ARMコンパイラ       | ` __ARMCC_VERSION`  |                       | +
-| インテルコンパイラ  | `__INTEL_COMPILER`  |                       | +
-| Borland C++         | `__BORLANDC__`      |                       | +
-| Appleコンパイラ     | `__APPLE__`                               |+
  
 +==== コンパイラ判定 ====
 +^ コンパイラ          ^ マクロ名            ^ 定義値          ^ 備考                                ^
 +| GCC                 | `__GNUC__`          | バージョン番号  |                                     |
 +| GCC/ARM             | `__arm__`                                                               |
 +| IAR EWARM           | `__ICCARM__`        |                                                     |
 +| ARMコンパイラ       | ` __CC_ARM`                         | ` __ARMCC_VERSION`はバージョン番号  |
 +| インテルコンパイラ  | `__INTEL_COMPILER`  |                                                     |
 +| Borland C++         | `__BORLANDC__`      |                                                     |
 +| Appleコンパイラ     | `__APPLE__`                                                             |
  
-### 実行環境判定 
-^ 実行環境            ^ マクロ名           ^ 定義値  ^ 備考             ^ 
-| UNIX            | `__unix__`          | `__unix`でもよい   | 
-| Linux           | `__linux__`    |      | `__linux`でもよい  | 
-| Windows(32bit)  | `_WIN32`            | `WIN32`でもよい    | 
-| Windows(64bit)  | `_WIN64`            |                | 
-| msys2(32bit)    | `__MINGW32__`  |      |                | 
-| msys2(64bit)    | `__MINGW64__`  |      |                | 
-| Cygwin          | `__CYGWIN__`        |                | 
-| macOS           | `__MACH__`          |                | 
  
-### 64bit環境判定 +==== 実行環境判定 ==== 
-^ 実行環境            ^ マクロ名           ^ 定義値  ^ 備考             +^ 実行環境        ^ マクロ名       ^ 定義値  ^ 備考                    ^ 
-| Linux/macOS        | `__x86_64                               |+| UNIX            | `__unix__`             | `__unix`でもよい        | 
 +| Linux           | `__linux__`    |         | `__linux`でもよい       | 
 +| Windows(32bit)  | `_WIN32`               | `WIN32`でもよい         | 
 +| Windows(64bit)  | `_WIN64`                                       | 
 +| msys2(32bit)    | `__MINGW32__`  |                                 | 
 +| msys2(64bit)    | `__MINGW64__`  |                                 | 
 +| Cygwin          | `__CYGWIN__`                                   | 
 +macOS           | `__MACH__            (Apple silliconでも可)  |
  
 +==== 64bit環境判定 ====
 +^ 実行環境               ^ マクロ名     ^ 定義値  ^ 備考  ^
 +| Linux/macOS            | `__x86_64`                 |
 +| macOS(Apple sillicon)  | `__arm64__`  |               |
 +
 +
 +===== 参考 =====
  
-参考 
----- 
  
 1. [[https://blog.goo.ne.jp/yamadokoro/e/3f3803fbedff1a535d15da364bcc1a16|C言語 マクロ コンパイル 判定 OS コンパイラ]] 1. [[https://blog.goo.ne.jp/yamadokoro/e/3f3803fbedff1a535d15da364bcc1a16|C言語 マクロ コンパイル 判定 OS コンパイラ]]
行 45: 行 50:
 4. [[https://qiita.com/naohikowatanabe/items/a4e1a3f8080210257a42|gcc のプリプロセッサの定義済みマクロ(Predefined Macros)の確認方法]] 4. [[https://qiita.com/naohikowatanabe/items/a4e1a3f8080210257a42|gcc のプリプロセッサの定義済みマクロ(Predefined Macros)の確認方法]]
 5. [[https://tech.ckme.co.jp/cpp/cpp_predef.shtml|コンパイラの種類とバージョンを知るためのpre-defineされたマクロは?]] 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.1620096255.txt.gz · 最終更新: 2021/05/04 11:44 by yoko