Skip to content

Instantly share code, notes, and snippets.

@sgur
Last active February 10, 2017 06:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sgur/23661e8f82785d9e9955ee3306d6e79b to your computer and use it in GitHub Desktop.
Save sgur/23661e8f82785d9e9955ee3306d6e79b to your computer and use it in GitHub Desktop.
How to build Vim on MinGW64/BashOnWindows

Vim をビルドするためのメモ

(注意) : https://github.com/sgur/vim-kaoriya-patches が guilt で適用されている前提

最新のソースコードに guilt のパッチを適用しなおす

git fetch
guilt pop -a ; git merge --ff-only ; guilt push -a

MinGW64 on MSYS2 で Vim をビルドする

cd src/
mingw32-make -f Make_ming.mak DIRECTX=yes FEATURE=HUGE ARCH=x86-64 OLE=yes WINVER=0x0A00 STATIC_STDCPLUS=yes USE_STDCPLUS=yes CC="gcc" CXX="g++" -j8
install --verbose --strip --target-directory ~/Bin *vim.exe vimrun.exe GvimExt/gvimext.dll
cd po/
make -f Make_cyg.mak
cd ../..
 rsync --archive --verbose --delete-during runtime/ ~/Bin/vim80/

WSL で Vim をビルドする

MinGWパッケージの追加

sudo apt-get install mingw-w64 gettext
  • 翻訳リソースの作成のため gettext が必要
  • gcc-mingw-w64 パッケージを直接指定してもよさそう

ビルドするときに CCCXX を変更

if_python3 とかの外部 IF を利用する時はパスの指定を c:/Python3/mnt/c/Python3 とかに変更する必要あり

make -f Make_ming.mak PYTHON3=/mnt/c/tools/python3 PYTHON3_VER=36 DIRECTX=yes FEATURE=HUGE ARCH=x86-64 OLE=yes WINVER=0x0A00 STATIC_STDCPLUS=yes USE_STDCPLUS=yes CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" WINDRES="x86_64-w64-mingw32-windres" -j8

もしくは

make -f Make_cyg.mak PYTHON3=/mnt/c/tools/python3 PYTHON3_VER=36 DIRECTX=yes ARCH=x86-64 OLE=yes STATIC_STDCPLUS=yes CROSS_COMPILE="x86_64-w64-mingw32-" -j8

以下のように、uninstl.exe のビルドに失敗するため、 Make_cyg_ming.mak をちょっと修正の必要があった。

/tmp/ccFwwuc4.o:uninstal.c:(.text+0x549): `__imp_CoTaskMemFree' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
make: *** [uninstal.exe] エラー 1
make: *** 未完了のジョブを待っています....

修正箇所

 uninstal.exe: uninstal.c
-       $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
+       $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB) -lole32

翻訳リソースの更新

make -f Make_cyg.mak GETTEXT_PATH=/usr/bin/
make -f Make_cyg.mak install

Git for Windows をインストール済であれば、C:\Program Files\Git\mingw64\bin から libiconv-2.dlllibintl-8.dllgvim.exe を保存したフォルダにコピーする

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment