2334


neobundle.vimでvimprocを管理したく、初回セットアップの後、NeoBundleUpdateするのですが、気がつくと下記のエラーメッセージが出てくるようになります。

> vimproc's DLL: "C:/Users/ _me_
> /vimfiles/bundle/vimproc.vim/autoload/vimproc_ win64.dll" is not found.
> Please read :help vimproc and make it.

実際、当該ファイルは存在しないので、makeに失敗しているようです。 ここからの問題判別方法を知りたいです。

vimrcのbundleは下記のように記述しています。

[code]

    NeoBundle 'Shougo/vimproc.vim', {
        \ 'build' : {
        \       'windows' : 'tools\\update-dll-mingw',
        \       'unix' : 'make -f make_unix.mak',
        \   },
        \ }
    
[/code]

追記：
初回のmakeは意図通りに出来ており、その際のvimprocの動作に問題は無いように思えました。その状態でしばらく使い続けてNeoBundleUpdateを行うとアップデート中で行われるmakeが失敗するようになる、という状況です。


CC BY-SA 3.0
2014-12-08T13:50:29.040
461
2014-12-21T15:31:55.297
2014-12-12T14:57:29.263
652
652
question
windows vim
NeoBundle の vimproc を make したい


[こちらの記事](http://www.jonki.net/entry/20140406/1396773150)に

>
> VimShellを動かすにはVimProcのdllを入れる必要があります。これまでは自分で作る必要がありましたが、2012/12/13版からvimprocのdllがgVimに同梱されています。

とあります。

[KaoriYaさんのvim](http://www.kaoriya.net/software/vim/)をお使いでしたら、回答したディレクトリの
plugins\vimproc\autoload にvimproc_win64.dll
が存在しますので、そちらを指定の位置にコピーされてみてはどうでしょうか。


CC BY-SA 3.0
2014-12-08T14:50:53.833
464
2014-12-08T14:50:53.833
728
461
answer


このwindowsのビルド用のパスが違っていませんか?
vimprocと同階層の`make_mingw32.mak`か`make_mingw64.mak`をビルドしないといけないようですが…。

<https://github.com/Shougo/vimproc.vim#windows>


CC BY-SA 3.0
2014-12-09T01:52:52.687
470
2014-12-09T01:52:52.687
521
461
answer


`update-dll-mingw.bat` の作者です。このバッチファイルは、内部的に `make_mingw32.mak`
または、`make_mingw64.mak` を使ってDLLをビルドします。

WindowsではLinuxと異なり、ロードされているDLLを書き換えることが出来ません。従って、NeoBundleから自動でvimprocのDLLをビルドしようとしても普通は失敗してしまいます。しかし、ロードされているDLLのリネームは可能なため、一度DLLのビルドを試し、失敗した場合には古いDLLをリネームして、再度ビルドを行うというのがこのバッチファイルです。（経緯については、
<https://github.com/Shougo/vimproc.vim/issues/131> を参照してください。）

このバッチファイルを使う大前提として、MinGWにパスが通っており、`make_mingw*.mak`でDLLがビルドできることが必要です。次の手順で確認してみてください。

  1. `mingw32-make -f make_mingw64.mak` または、`mingw32-make -f make_mingw32.mak` をコマンドプロンプト実行しDLLがビルドされることを確認する。
  2. コマンドプロンプトの同じディレクトリから、`tool\update-dll-mingw.bat`を実行してDLLがビルドされることを確認する。

なお、`update-dll-
mingw.bat`は32/64bitを自動判別しますが、判別に失敗するようであれば、`32`または`64`を引数として与えてください。例:

[code]

    NeoBundle 'Shougo/vimproc.vim', {
    \ 'build' : {
    \       'windows' : 'tools\\update-dll-mingw 32',
    \       'unix' : 'make -f make_unix.mak',
    \   },
    \ }
    
[/code]


CC BY-SA 3.0
2014-12-21T15:31:55.297
2334
2014-12-21T15:31:55.297
4622
461
answer