2017-09-28 9 views
0

Vimから呼びたいOCamlプログラムがあります。私.vimrcVimからOCamlを呼び出す:共有ライブラリを読み込めませんdllbin_prot_stubs

、私はOCamlのバイトコードを実行すべきコマンドを定義している:

command! MyCommand call FunctionCallingOCaml() 
function! FunctionCallingOCaml() 
    let scriptPath = $HOME . "/path/to/myOCamlProgram.byte" 
    let ocamlCmd = "ocamlrun " . scriptPath 
    execute "!" . ocamlCmd 
endfunction 

残念ながら、これは動作しません。私は、エラーメッセージが表示されます。

Fatal error: cannot load shared library dllbin_prot_stubs Reason: dllbin_prot_stubs.so: cannot open shared object file: No such file or directory

I bashを実行している別の端末から滞りなくmyOCamlProgram.byteを実行することができます。

また、lsのようなシェル組み込み関数とgrepというプログラムをVimからexecuteを使用して問題なく呼び出すことができます。


私のシステム:

uname -a

Linux marathon 4.12.10-1-ARCH #1 SMP PREEMPT Wed Aug 30 12:18:42 CEST 2017 x86_64 GNU/Linux

opam --version:1.2.2

VIM - Viは2017年9月19日午後01時59分をまとめ、9月12日(2016 8.0に改善しました: 47)

答えて

1

OPAMが適切に初期化されていないことが判明しましたlはVimを実行しています。 PATHにエラーが発生したOCamlバイナリは含まれていませんでした。修正として

、私は私のLinuxのインストールは、VimのからOCamlのプログラムを実行するように環境変数を設定し、PATHを変更するためにeval $(opam config env)と呼ばれる:

let ocamlCmd = "eval $(opam config env) && ocamlrun " . scriptPath 
execute "!" . ocamlCmd 

まだよく、あなたの.bash_profileにこれを追加しますので、あなたのシェルがinitialzedされますOPAMに関してたびに、あなたがログイン:

. /home/mb/.opam/opam-init/init.sh 

ドットをシェルスクリプトsourcesそれを前に。

関連する問題