##EclipseでMinGW(gcc)を切り替える
Eclipseは有名なIDEですが、Windows OSでC言語やC++言語の記事が少なかったのでまとめてみました。
Eclipseは、日本語化してます。2024-09.20240917版です。
https://willbrains.jp/
###MinGW GCC
本家
https://www.mingw-w64.org/
リスト
https://www.mingw-w64.org/downloads/
MinGWは、いろいろありますが、下記を使用しました。
MinGW-W64-builds
https://github.com/niXman/mingw-builds-binaries/releases
どれを使えばわからない場合
とりあえず Windows 10 or later 前提であればUCRTにします.
msvcrt は古い Windows version(e.g. Vista)用です.
-
アーキテクチャ (Architecture)
x86_64 : 64ビット版のWindows用。
最新のコンピュータで一般的に使用される。
i686 : 32ビット版のWindows用。
古い32ビットOSや互換性が必要な場合に使用する。
64ビットシステムを使用している場合は x86_64 を選択すべきです。 -
スレッドモデル (Thread Model)
posix : POSIXスレッドモデルを使用します。
これは標準的なPOSIX互換のスレッドライブラリで、クロスプラットフォームのコードに適しています。
win32 : Windowsのネイティブなスレッドモデルを使用します。
Windows固有のAPIを使うプログラムに最適です。 -
Cランタイムライブラリ (C Runtime Library)
seh (Structured Exception Handling) : 64ビットアーキテクチャの例外処理メカニズムとして使用され、最新のWindowsで推奨されます。
sjlj (Setjmp/Longjmp) : 例外処理のために少し古い方法を使用します。32ビット環境で使用されることが多いです。
dwarf (DWARF) : 32ビット環境でのデバッグ情報フォーマット。64ビットには対応していません。
x86_64ではseh、i686ではsjljまたはdwarfを選ぶのが標準です。 -
ビルドシステム
UCRT (Universal C Runtime) : 新しいCランタイムで、Windows 10以降で広くサポートされています。Windows APIの互換性を向上させるため、最新のWindows開発ではこれが推奨されます。
msvcrt (Microsoft C Runtime): 古いCランタイムライブラリです。互換性が必要な場合に使用しますが、UCRTの方が一般的に推奨されます。
###Eclipse初期のGCC
---\eclipse\mingw にあり、下記バージョンでした。
x86_64-8.1.0-release-posix-seh-rt_v6-rev0
gcc --version
gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0
###今回ダウンロードしたGCC
(1) x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0
gcc --version
gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-Builds project) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
(2) x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev0
gcc --version
gcc.exe (x86_64-win32-seh-rev0, Built by MinGW-Builds project) 14.2.0
##Eclipseの設定
初期状態では、eclipseフォルダ内にあるgcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0が使用されます。
プロジェクト作成後、コンパイラをその都度設定しても良いのですが、面倒です。
今回は、上記でダウンロードした(1)gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-Builds project) 14.2.0をプロジェクト作成時に指定されるように設定したいと思います。
ただし、GDBは、Eclipseのシステム(全体)設定からgdb.exeパスを再設定してください。
ポイントは、「設定する環境変数」「MINGW_HOME」です。
Windows OSの「環境変数を編集」
Eclipseの設定は触らず、ユーザーまたはシステムに設定します。
環境変数 MINGW_HOME に
---\x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0\mingw64
を設定します。
さらに「PATH」を追加します。
%MINGW_HOME%\bin
プロジェクトこどにバージョンを変えたい、PATHに追加したくない、コマンドラインでは別なもの使いたいなどの場合は、Eclipseの設定でMINGW_HOMEを設定します。
Eclipseのシステム(全体)設定