2017-09-28 6 views
0

Vim에서 호출하고 싶은 OCaml 프로그램이 있습니다.Vim에서 OCaml 호출 : 공유 라이브러리를로드 할 수 없습니다. dllbin_prot_stubs

.vimrc에서

, 내가 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

내가 다른 터미널 실행중인 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일 13시 59분를 컴파일 9 월 12 조 (2016 8.0 향상 : 47)

답변

1

OPAM이 쉘에 제대로 초기화되지 않은 것으로 판명되었습니다. Vim을 돌리고 있어요. PATH에 오류가 발생한 OCaml 바이너리가 없습니다. 당신의 .bash_profile 그래서 쉘이 initialzed되는이 추가

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

더 나은를 여전히 :

는 수정, 나는 환경 변수를 설정하고 내 리눅스 설치가 빔에서 OCaml의 프로그램을 실행할 수 있도록 경로를 수정 eval $(opam config env)라고 OPAM에 관해서 때마다 당신은 로그인 :

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

도트를 쉘 스크립트 sources을하기 전에.