恥は/dev/nullへ by 初心者

~ PC初心者による右往左往の記録 ~

MinGWを使ってVimをビルド

Windowsで使うVimに関してはVimのサイトからZip版をDLしていましたが、これでは最新版が使えません。そこで、MinGWを使ってビルドしてみました。この記事はその備忘録です。

情報源

1.vim-jp
https://vim-jp.org/docs/build_windows_mingw.html

2.vim/srcの中の文書
INSTALLpc.txt(「2. Using MSYS2 with MinGW」「3. Using MinGW」)
Make_ming.mak
Make_cyg_ming.mak

3.Vimのヘルプ
:help version

msys2をインストール

自分の環境では既にmsys2がインストールされていたので、まずmsys2を最新状態にしました。

pacman -Suuy


ご親切に「MSYS2を終了して再実行するように言われた場合は、それに従ってminttyのウィンドウを閉じ、スタートメニューから再度 MSYS2 MSYS を実行し、pacman -Suu を実行します。」という記述がvim-jpにあったので、それに従いました。

pacman -Suu


これ以降の作業は、msys2上で行います。

必要な道具を取得

pacman -S git
pacman -S base-devel
pacman -S mingw-w64-x86_64-toolchain


pacman -S mingw-w64-x86_64-toolchain を実行すると、13の候補が表示されます。
「Enter a selection (default=all):」というプロンプトが表示されるので、Enterを押下します。

Vimのソースを取得

git clone https://github.com/vim/vim.git

(git clone実行後にソースが更新された場合は git pull)

ビルド

srcフォルダに移動します。

cd vim/src


mingw32-makeを実行します。

mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313

(Python3拡張を使わない場合、「PYTHON3=」で始まる部分は不要です)

vim/srcフォルダ内にgvim.exeが出力されます。

make時に指定する項目について

Make_ming.makファイルを読むと次の記述があります。

This file contains MinGW specific settings. Common settings are contained
in Make_cyg_ming.mak.


そこで、Make_cyg_ming.makを見てみました。このファイルの中に

DEBUG=no
GUI=yes
ICONV=yes
IME=yes

という記述があったので、これらの項目を省いて次のようにしても同じ結果になると思います。

mingw32-make -f Make_ming.mak MBYTE=yes PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313


とはいえ、Make_cyg_ming.makの中身が変わることもあるでしょうから、ビルド時にこのファイルの中身をチェックした方が良さそうです。

libgcc_s_seh-1.dll と libstdc++-6.dllが無い?

出力されたgvim.exeを実行したところ、「libgcc_s_seh-1.dllが見つかりません」「libstdc++-6.dllが見つかりません」と表示されました。

パスが通っていないのかなと思ったので、msys2でfindコマンドを実行しました。

cd /c/msys64
find . -name "libgcc_s_seh-1.dll"
find . -name "libstdc++-6.dll"


どちらのdllも「msys64\mingw64\bin」にあったので、環境変数Pathに以下の記述を加えました。

C:\msys64\mingw64\bin


sodiumを有効化

msys2でlibsodiumをインストールしてからmakeしました。

pacman -S mingw-w64-x86_64-libsodium

mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no SODIUM=yes PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313


自分の場合

mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no OLE=yes SODIUM=yes PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313