金子邦彦研究室インストールWindows の種々のソフトウェア(インストール)MSYS2 のインストールと,MINGW64 環境で動く LLVM(Clang, Flang, LLD, LLDB)とGNU ツールチェーン類 (gcc, g++, gfortran, gdb, make, ninja, ccache, svn 等) のインストール(MSYS2 を利用 )(Windows 上)

MSYS2 のインストールと,MINGW64 環境で動く LLVM(Clang, Flang, LLD, LLDB)とGNU ツールチェーン類 (gcc, g++, gfortran, gdb, make, ninja, ccache, svn 等) のインストール(MSYS2 を利用 )(Windows 上)

Windows での,MSYS2 と GNU ツールチェーン類(gcc など)のインストール手順を説明する. MSYS2 は,ターミナル minttyシェル bash各種UNIX風コマンドの詰め合わせ.

MSYS2 には,MSYS, MINGW64, UCRT64 などのさまざまな環境がある (環境についての公式の説明は: https://www.msys2.org/docs/environments/).

このページでは,MSYS2 のベースと,MINGW64環境の LLVM(Clang, Flang, LLD, LLDB)とGNU ツールチェーン類 (gcc, g++, gfortran, gdb, make, ninja, ccache, svn 等) のインストール を行う.

目次

  1. MSYS2 のダウンロードとインストール
  2. GNU ツールチェーン類 (gcc, g++, gfortran, gdb, make, ninja, ccache, svn 等) のインストール
  3. gcc, Clang の動作確認
  4. Flang の動作確認

【関連する外部ページ】

MSYS2 の環境について(公式ページ): https://www.msys2.org/docs/environments/

MSYS2 のダウンロードとインストール

MSYS2 は,ターミナル minttyシェル bash各種UNIX風コマンドの詰め合わせ. pacmanコマンドを使ってパッケージの追加もできる.UNIX風コマンドとpacmanコマンドが便利.

◆ ここでの設定

インストール後に行う環境変数の設定

◆ ダウンロードとインストールの手順

  1. MSYS2 のページを開く

    http://msys2.github.io/

  2. Download the installer のところをクリック

    [image]
  3. ダウンロードが始まる.

    [image]
  4. ダウンロードした .exe ファイルを実行
  5. ようこそ画面では,「次へ」をクリック.

    [image]
  6. インストールディレクトリ(フォルダ)は既定(デフォルト)のままでよい.「次へ」をクリック.

    [image]
  7. スタートメニューのショートカットは,既定(デフォルト)のままでよい.「次へ」をクリック.

    [image]
  8. インストールが始まる.

    [image]
  9. インストール終了の確認.「完了」をクリック.

    [image]
  10. インストール直後は,mintty,bash が自動起動するので確認

    [image]
  11. MSYS2 MINGW64 を実行する

    スタートメニューで,「MSYS2」の下の「MSYS2 MINGW64」を選ぶ.

    [image]
  12. 念のため、この画面で環境変数の値を確認.
    echo $MSYSTEM
    echo $PATH
    echo $PKG_CONFIG_PATH
    

    [image]
  13. パッケージデータベースと pacman とコアパッケージの更新

    いま開いたmsysで次のコマンドを実行する

    pacman -Syu
    

    ※ 質問には「y」+ Enter キー

    [image]
  14. 終了時に「... [Y/n]」と表示された場合は「y」+ Enter キー

    [image]
  15. パッケージの更新
    1. MSYS2 MINGW64 を実行する

      スタートメニューで,「MSYS2」の下の「MSYS2 MINGW64」を選ぶ.

      [image]
    2. いま開いたmsysで次のコマンドを実行する
      pacman -Su
      

      ※ 質問には「y」+ Enter キー

      [image]
    3. 終わったら,msysを閉じる.

      [image]
  16. Windowsのシステム環境変数MSYSTEMを次のように設定
    MINGW64
    

    そのために,Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

    次のコマンドを実行

    powershell -command "[System.Environment]::SetEnvironmentVariable(\"MSYSTEM\", \"MINGW64\", \"Machine\")"
    

    [image]
  17. Windowsのシステム環境変数Pathに次の5つを追加することにより,パスを通す

    そのために,Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

    次のコマンドを実行

    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\msys64\mingw64\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\msys64\usr\local\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\msys64\usr\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\msys64\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\msys64\opt\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    

    [image]
  18. bash, ls にパスが通っていることを確認する

    そのために,新しく Windowsコマンドプロンプトを開き、次のコマンドを実行する.

    エラーメッセージが出なければOK.

    where bash
    where ls
    

    [image]

LLVM(Clang, Flang, LLD, LLDB)とGNU ツールチェーン類 (gcc, g++, gfortran, gdb, make, ninja, ccache, svn 等) のインストール

MSYS2 に gcc, g++ (C言語, C++言語処理系) やその他のツールチェーンを,パッケージを使ってインストールする.

◆ 事前準備

MSYS2 のインストールが終わっていること.

◆ ダウンロードとインストールの手順

  1. MSYS2 MINGW64 を実行する

    スタートメニューで,「MSYS2」の下の「MSYS2 MINGW64」を選ぶ.

    [image]
  2. MSYS2 でGNU ツールチェーン類 (gcc, g++, gfortran, gdb, make, ninja, ccache, svn 等) のインストールのインストール

    次のコマンドを1つずつ実行.

    ※ 「Enter a selection (defaulit=all) という質問には・既定(デフォルト)のままでよいので、Enter キー

    ※ 「Proceed with installation? [Y/n] という質問には・インストールを続けたいので、Y, Enter キー

    pacman -Sy --needed base-devel
    pacman -Sy --needed msys2-devel
    pacman -Sy --needed mingw-w64-x86_64-toolchain
    pacman -Sy --needed mingw-w64-x86_64-boost
    pacman -Sy --needed mingw-w64-x86_64-ninja
    pacman -Sy --needed mingw-w64-x86_64-libtool
    pacman -Sy --needed mingw-w64-x86_64-ccache
    pacman -Sy --needed mingw-w64-x86_64-clang
    pacman -Sy --needed mingw-w64-x86_64-flang
    pacman -Sy --needed mingw-w64-x86_64-lld
    pacman -Sy --needed mingw-w64-x86_64-lldb
    pacman -Sy --needed autoconf
    pacman -Sy --needed git
    pacman -Sy --needed subversion
    pacman -Sy --needed findutils
    pacman -Sy --needed ncurses-devel
    

    選択してください (デフォルト = all)」に対しては Enter キー

    [image]

    インストールを行いますか? [Y/n] (Proceed with installation? [Y/n])」に対しては,y + Enter キー

    [image]

    コマンドを1つずつ実行するたびに、エラーメッセージが出ていないことを確認。

    [image]

    ※ msys のパッケージは pacman -Ss <キーワード>で検索できる

  3. パスが通っていることを確認する

    Windowsコマンドプロンプトを開き、次のコマンドを実行する.

    エラーメッセージが出なければOK.

    where gcc
    where g++
    where gfortran
    where gdb
    where make
    where ninja
    where ccache
    where svn
    where locate
    where clang
    where flang-new
    where lld
    where lldb
    

    次のような結果が出るはず(必ずしも、ぴったりは一致しないでしょう.エラーメッセージが出なければ OK)

    [image]

    次のようなエラーメッセージが出るなどのときは、システム環境変数Pathの設定を確認し修正した後、Windows のコマンドプロンプトを開き直す。

    [image]

gcc, Clang の動作確認

  1. エディタを起動

    ここではメモ帳 (notepad) を使っている.

    Windowsコマンドプロンプトを開く. そして,次のように実行して,プログラムファイルを作る. そのファイル名は hello.c としている.

    c:
    cd %HOMEPATH%
    notepad hello.c
    

    [image]
  2. いまメモ帳で開いたファイルを, 次のように編集する(コピー&ペーストしてください).そして保存する.
    #include<stdio.h>
    int main() {
        printf("Hello,World!\n");
        printf("sizeof(size_t)=%ld\n", sizeof(size_t));
        return 0;
    }
    

    [image]
  3. gcc の動作確認

    Windows のコマンドプロンプトを開き、次を実行.

    結果として,「Hello,World!」「sizeof(size_t)=8」と表示されればOK.

    del a.exe
    gcc hello.c
    .\a.exe
    

    [image]
  4. clang の動作確認

    Windows のコマンドプロンプトを開き、次を実行.

    結果として,「Hello,World!」「sizeof(size_t)=8」と表示されればOK.

    del a.exe
    clang hello.c
    .\a.exe
    

    [image]

Flang の動作確認

  1. エディタを起動

    ここではメモ帳 (notepad) を使っている.

    Windowsコマンドプロンプトを開き,次のコマンドを実行する. ファイル名は hello.f90 としている.

    c:
    cd %HOMEPATH%
    notepad hello.f90
    

    [image]
  2. いまメモ帳で開いたファイルを, 次のように編集する(コピー&ペーストしてください).そして保存する.
    program main
      print *, 'Hello,World!'
      stop
    end program main
    

    [image]
  3. 次のコマンドを実行

    x64 Native Tools コマンドプロンプトを使うこと.

    結果として,「Hello,World!」と表示されればOK.

    del hello.exe
    flang-new hello.f90 -o hello.exe
    .\hello.exe
    

    実行結果例

    [image]

msys2 に付属の gdb での,起動時のエラーに関する対処例

msys2 の gdb 起動するとき,次のようなエラーメッセージが出ることがある.

ImportError: No module named libstdcxx.v6.printers
/etc/gdbinit:6: Error in sourced command file:
Error while executing Python code.

エラーメッセージから「gdbinit」に原因があると手掛かりが得られた. C:\msys64\etc\gdbinit をエディタで開く. すると,gcc のバージョンが間違っていることが分かる. 次のように書き直す.

[image]

もう一度 gdb を起動してみる.エラーメッセージが無くなることが分かる.