从 Vim 调用 OCaml:无法加载共享库 dllbin_prot_stubs
Call OCaml from Vim: cannot load shared library dllbin_prot_stubs
我有一个要从 Vim 调用的 OCaml 程序。
在我的 .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
我可以从另一个终端顺利执行 myOCamlProgram.byte
运行 bash.
此外,我可以使用 execute
毫无问题地调用 shell 等 ls
等内置函数和 Vim 等 grep
的程序。
我的系统:
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 IMproved 8.0(2016 年 9 月 12 日,2017 年 9 月 19 日编译13:59:47)
事实证明,OPAM 在 shell 运行ning Vim 中没有正确初始化。
PATH 不包含导致错误的 OCaml 二进制文件。
作为修复,我调用了 eval $(opam config env)
来设置环境变量并修改 PATH 所以我的 Linux 安装将 运行 来自 Vim 的 OCaml 程序:
let ocamlCmd = "eval $(opam config env) && ocamlrun " . scriptPath
execute "!" . ocamlCmd
更好的是,将此添加到您的 .bash_profile
,这样您每次登录时都会针对 OPAM 初始化您的 shell:
. /home/mb/.opam/opam-init/init.sh
shell脚本sources之前的点。
我有一个要从 Vim 调用的 OCaml 程序。
在我的 .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
我可以从另一个终端顺利执行 myOCamlProgram.byte
运行 bash.
此外,我可以使用 execute
毫无问题地调用 shell 等 ls
等内置函数和 Vim 等 grep
的程序。
我的系统:
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 IMproved 8.0(2016 年 9 月 12 日,2017 年 9 月 19 日编译13:59:47)
事实证明,OPAM 在 shell 运行ning Vim 中没有正确初始化。 PATH 不包含导致错误的 OCaml 二进制文件。
作为修复,我调用了 eval $(opam config env)
来设置环境变量并修改 PATH 所以我的 Linux 安装将 运行 来自 Vim 的 OCaml 程序:
let ocamlCmd = "eval $(opam config env) && ocamlrun " . scriptPath
execute "!" . ocamlCmd
更好的是,将此添加到您的 .bash_profile
,这样您每次登录时都会针对 OPAM 初始化您的 shell:
. /home/mb/.opam/opam-init/init.sh
shell脚本sources之前的点。