我想编译一些 OCaml 字节码并让它在 Windows 和 Unix 类型的系统上运行。如果我在每个平台上重新编译它,我的源代码可以正常工作,但字节码不可移植。
示例代码:
open Unix
let on_windows = Filename.dir_sep <> "/";;
Printf.printf "On windows: %b\n" on_windows;;
let child = create_process "gpg" (Array.of_list ["gpg"; "--version"]) stdin stdout stderr;;
Printf.printf "Child %d\n" child;;
构建命令:
ocamlbuild -use-ocamlfind -pkg unix test.byte
如果我在 Windows 上编译并在 Linux 上运行,我会得到
Fatal error: unknown C primitive `win_waitpid'
如果我在 Linux 上编译并在 Windows 上运行,我会得到:
Fatal error: unknown C primitive `unix_waitpid'
我怎样才能让字节码在任何地方都能工作?