Tôi muốn biên dịch một số bytecode OCaml và nó chạy trên các hệ thống kiểu Windows và Unix. Mã nguồn của tôi hoạt động tốt nếu tôi biên dịch lại nó trên mỗi nền tảng, nhưng mã byte không phải là di động.Làm thế nào để làm cho bytecode OCaml hoạt động trên Windows và Linux
Mẫu mã: lệnh
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;;
tích xây dựng:
ocamlbuild -use-ocamlfind -pkg unix test.byte
Nếu tôi biên dịch trên Windows và chạy trên Linux, tôi nhận được
Fatal error: unknown C primitive `win_waitpid'
Nếu tôi biên dịch trên Linux và chạy trên Windows tôi nhận được:
Fatal error: unknown C primitive `unix_waitpid'
Tôi làm cách nào để mã byte hoạt động ở mọi nơi?
Vui lòng hiển thị lệnh biên dịch. – ygrek
Tôi đang sử dụng ocamlbuild - Tôi đã chỉnh sửa câu hỏi. –