みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

MinGW/MSYS (1.0) の64ビット化を見据えた Windows10 へのインストール方法

サイト内 Google 検索:


この記事では、Windows 上でネイティブに動く GNU コンパイラであり、Windows アプリも開発可能な MinGW/MSYS (1.0) を、64ビット化も見据えつつ Windows10 へ最小構成でシンプルにインストールする方法を紹介します。

また、ここで紹介するインストール方針に従えば、MinGW でランタイム ライブラリの異なる複数バージョンの GCC の使い分けも可能となります。使い分けの例としては、GUI ソースコードデバッガ Insight (GDBtk) の旧版 6.3 用を利用する為に、MinGWGCC-4.7 を別ディレクトリにインストールする等が有ります。詳細は別の記事で紹介予定です。

目次:

MinGW、MSYS、MinGW-w64 それぞれの違い:

大雑把な表現ですが、MinGWWindows 上でネイティブに動作するコンパイラの本体、MSYS は MinGWコンパイラを起動する為の開発環境であると考えてください。

MinGW/MSYS (1.0) は32ビット用 Windows アプリで、生成されるバイナリも32ビットです。開発された当時は未だ64ビットの Windows は普及していない時代で、64ビット化は想定されていませんでした。そこで新たに、MinGW-w64 として32ビットと64ビットの両方のバイナリを出力可能なシステムが開発され、同じく新しく開発された MSYS2 と同梱される様になりました。

旧版の MSYS (1.0) を 新版の MinGW-w64 と組み合わせて使う:

この記事では、新しい MSYS2 ではなく、古い MSYS (1.0) 開発環境を将来的に32ビットと64ビットの両方バイナリを出力可能な MinGW-w64 本体と組み合わせる事を見据えてインストールして行きます。

MSYS (1.0) を MinGW-w64 と組み合わせる動機は、64ビット版のMSYS2 は単純な MSYS (1.0) の後継版では無く、次の様なデメリットが有るからです。

  • ローリングリリースで日々アップデートされ、安定版での運用が困難
  • パッケージ管理システムの Pacman に慣れて居ないと使い難い
  • 管理の為には、予めGnuPGで自分専用のシグネチャを作っておく必要が有る
  • 起動時にコマンドプロンプトが出るまでの時間が長い

Windows 見えと、MSYS 見えのディレクトリの構成方針:

当初、MinGW を C:\MinGW32にインストールしていましたが、MinGW-w64 には32ビットバイナリ出力用と64ビットバイナリ出力用の両方のコンパイラが含まれており矛盾が発生した為、下記の通り方針を変更します。尚、MinGW/MSYS (1.0) 内では、自身を MinGW32 と称する場合も有ります。

Windows 上のディレクトリ構成:

  • 旧版の MinGW は C:\MinGW に通常通りインストールします
  • MSYS は C:\MSYS にインストールし、MinGW-w64 への使い回しを考慮します。
    これは、旧版の MinGW で複数の GCC バージョンを使い分ける為にも必須です。
  • 【別記事】で手順を紹介する MinGW-w64 は C:\MinGW-w64 にインストールします

MSYS の bash 見えのディレクトリ構成:

MSYS の bash を起動した時には、次の様な構成に見える様にします

  • 旧版の MinGW は /mingw
  • MinGW-w64 の32ビット版は /mingw32 に
  • MinGW-w64 の64ビット版は /mingw64 に

64ビット化を見据えて最小システムを短時間でインストールする手順:

次の手順で、必要最低限な GNU コンパイル環境をインストール出来ます。まさに Minimalist です。

  1. OSDN の MinGW ウェブページ

     の mingw-get-setup.exe の置き場 から、この名前のインストーラをダウンロードします。
    最近になり、サーバーが www.mingw.org から OSDN に移動した様です。
  2. Windows の操作で、C:\MinGW というフォルダを先に作っておきます。
    インストール先が C:\MinGW 以外の場合、必ず先にフォルダを作ってください
  3. インストーラを起動します。2ページ目のインストール先は変更しません。 
    変更したい場合は、Chnage ボタンで予め作ったディレクトリに変更します。
  4. 3ページ目で、Processed の数と  items の数が一致するまで、カタログ情報の xml ファイルをダウンロードが行われるのを待ち、一旦 Quit を押して終了します。
  5. C:\MinGW\var\lib\mingw-get\data\profile.xml をメモ帳等で編集します。
    下から4行目辺りのMSYSインストール先を次の通り書き換えておきます。
     <sysroot subsystem="MSYS" path="%R/../MSYS/" />
    この変更で MSYS は C:\MSYS にインストールされる様になります。C:\MSYS と書くとディレクトリの区切り記号 ( / と \ ) が正しく認識出来ず、以後の動作に不具合が発生しますので、必ず上記の通り相対指定で修正してください。
  6. さて、ここからはコマンドラインで実行した方が速いです。Windows のコマンド プロンプトを開き、c:\Mingw32\bin ディレクトリに移動します。
  7. mingw-get  --help (ハイフンは2つ) と入力するとヘルプが見れます。
    mingw-get  list を実行するとパッケージの一覧が見れます。 (長いです)
    mingw-get list | egrep '^Package'」と打つと1項目1行で見れます。
  8. コマンドラインから「mingw-get  install  msys」 を実行します。
    (これは alias で、実際には msys-base がインストールされます)
  9. MSYS が C:\MSYS にインストールされている事を確認します。
  10. コマンドラインから「mingw-get  install  mingw32」 を実行します。
    (これは aliasで、実際には mingw32-base がインストールされます)
  11. MinGW32 が C:\MinGW32 にインストールされている事を確認します。
  12. コマンドプロンプトを閉じます。

以上で最小システムでのインストールが完了です。尚、追加のシステムを使用したい場合には、引き続きインストーラーを使用しますが、必要に応じ順次行って行けば大丈夫です。インストラーは、GUI 版 (mingw-get-setup) でもコマンドライン版 (mingw-get) でも、どちらでも大丈夫です。コマンドラインmingw-get の使い方は、Debian Linux 系の apt (apt-get) に近く、lilst、update、upgrade、install 等のコマンドが動きます。

コンパイラをビルドしたい人が追加で最初にインストールしておきたいのは、mingw-developer-toolkit です。次のコマンドラインを追加で打ちます。
mingw-get install mingw-developer-toolkit」

また、ターミナルエミュレータは MSYS 内の mintty、もしくはマイクロソフトの新しい Windows Terminal を使用する様に設定すると便利になります。これらは別の記事に記載しました。【MinGW関係の目次】を御覧頂ければと思います。

MinGW/MSYS の動作確認:

エクスプローラーから、C:\MSYS\msys.bat をダブルクリックすると、Windows のいわゆる DOS 窓の中で UNIXbash シェルが動作します。

試しに「pwd」や「ls」等の UNIX コマンドを実行すると、正しく動作する筈です。
また「mingw32-gcc  --version」を実行して、GCCが動作する事も確認できます。


【MinGW 関係の目次へ戻る】