MSYS2 Software Distribution and Building Platform for Windows
MSYS2 MinGW GCC環境をつくる(その1)
基本的に上記通りに進めれば良い.
インストールして起動すると起動できるシェルが3つある.
gccの環境は以前はMinGW(Minimalist GNU for Windows)を使ってインストールしてたが,現在はMSYSをインストールしてその中でMinGWをインストールしている.
今後はWindows Subsystem for Linux 2 (WSL2)に移行していくのがよさそう.
gccはMSYS2 MinGW(64bit)(mingw-w64-x86_64-gcc
)をインストールする.
ここでインストールされるgccはMSYS2 MinGW(64bit)シェル内部でしか見えない.
Powershellなどのコマンドラインで使えるようにWIndowsの環境変数PATH
にMinGW(64bit)のパスを登録する.
今回はMSYS2をC:\msys64
にインストールしたため,MinGW(64bit)のパスはC:\msys64\mingw64\bin
となる.
MSYS2 MinGW(64bit)(mingw-w64-x86_64-gdb
)をインストールする.
gccと同じパスに入っている
MinGW(64bit)のパスはC:\msys64\mingw64\bin
となる.
makeはMSYS2 MSYS(make
)をインストールする.
MinGW(64bit)のものはコマンド名がmake.exe
ではなくmingw32-make.exe
になってるため,リネームがめんどくさいのでmakeはMSYSでインストールする.
Powershellなどのコマンドラインで使えるようにWIndowsの環境変数PATH
にMSYSのパスを登録する.
今回はMSYS2をC:\msys64
にインストールしたため,MSYSのパスはC:\msys64\usr\bin
となる.
2020-07-30 Update
MSYS2 MSYS内部の書くコマンドがXilinxの開発ツールのコマンドと干渉することが判明.
解決策として,MSYS MinGW64のmake
(mingw-w64-x86_64-make
)をインストールし,mingw32-make.exe
にmake.exe
という名前のシンボリックリンクを作成する.
コマンドプロンプトでMinGW64のコマンドがあるパスまで潜り,以下を実行.今回はC:\msys64\mingw64\bin
で以下を実行
<code cmd>
mklink make.exe mingw32-make.exe
</code>
C:\msys64\usr\bin
を環境変数PATH
から削除する.
これでコマンドラインからはMSYS MinGW64にインストールしたmingw32-make.exe
をmake
で呼び出すことができた.また,VitisのPlatfoem Projectのビルドも問題なく実行できた.
より良い解決策が現状見つかってないのでこれでひとまず運用.
2020-07-31 Update
MinGW64のmake
がCubeMXで吐いたMakefileと相性が悪い?MSYS2のmake
では問題なく動く
やはりMSYS2 MSYSにはPATHを通す必要がある.C:\msys64\usr\bin
は環境変数PATH
に追加しておく.
Vitisを起動するときに対処する必要あり.
Vitisのページにまとめた ↓
VitisでPlatfom Projectのビルドやクリーンができない
2022-06-25 Update
bloatyで必要になったでMinGW(64bit)のmakeもインストールしておく(mingw32-make.exe
),前述の通り,名前は被らないので問題ない.
CMakeでMinGW Makefiles
を指定するとき,使用するmake
はMinGWのmake(mingw32-make.exe
)
MSYS2 MSYS版のccacheはうまく動かなかったため,MSYS2 MinGW(64bit)(mingw-w64-x86_64-ccache
)をインストールする.
ccache
https://www.msys2.org/docs/autotools/
pacman -S "${MINGW_PACKAGE_PREFIX}-autotools" # for mingw pacman -S autotools # for msys
msys2の初期化スクリプトファイルを~/.bashrc
に書いておける
Windows TerminalからMSYS2を起動できるようにしておく
WIndows TerminalのJSONファイル
https://www.msys2.org/docs/terminals/