私のMac OSには、1行のOCamlプログラム:print_string "hello world!\n"
が書かれています。それから私はocamlopt -o test test.ml
によってそれをコンパイルしました、生成されたtest
はうまく動作します。Mac OSでコンパイルされた実行ファイルは、Ubuntuサーバーでは実行できません。
次に、このtest
を私のUbuntu &にインストールします。ここでは、OCamlはインストールされていません。私は./test
を立ち上げ、エラー:-bash: ./code: cannot execute binary file: Exec format error
を得ました。
私はサーバにOCamlをインストールし、そこに私のプログラムをコンパイルする必要がありますか?実行可能ファイルだけをUbuntuサーバーで実行できるように、Mac OSでプログラムをコンパイルすることはできないのですか?
以下のJeffreyの回答以外にも、クロスコンパイル、Dockerコンテナでの実行可能ファイルのビルド、結果のバイナリ+リンクされた.soファイルのコンテナからの抽出、ターゲットホストと一致するVMでのビルドが可能です。 – hcarty