7

私は現在、OCaml で記述され、js_of_ocaml を使用して JavaScript にコンパイルされた Web サイト プロジェクトに取り組んでいます。コマンドを使用するソース ファイルが 1 つしかない限り、これはかなりうまく機能しocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o -linkpkg -o file.byte file.mlますが、プロジェクトに複数のモジュールを含めたいと考えています。どうやってやるの ?

他のモジュールは、実際には ocamllex と menhir によって生成されたレクサーとパーサーです。js_of_ocaml で ocamllex と menhir を使用する方法に関するチュートリアルを読みましたが、js_of_ocaml がインストールされている場所 (私は opam でインストールしました) について間違った仮定をしており、ocamlbuild を使用しています。 ocamlbuild などのツール。

4

3 に答える 3

8

公式の例のメイクファイルを理解しようとすることで解決策を見つけました。

ここに私のメイクファイルがあります:

OBJS=file1.cmo file2.cmo file3.cmo
NAME=projectname
OCAMLC=ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o

$(NAME).byte: $(OBJS)
        $(OCAMLC) -linkpkg -o $@ $(OBJS)

$(NAME).js: $(NAME).byte
        js_of_ocaml $<

%.cmo: %.ml
        $(OCAMLC) -c $<
...
于 2013-01-17T23:53:01.450 に答える
5

ocamlbuild実行した操作のログを保持します。ocamlbuildを呼び出した後、_build/_logそれが呼び出したすべてのコマンドと、完全な引数などが表示されます。これは、手動で行う方法を理解するための最も簡単な方法です。

+site-lib前提条件とOPAMに関しては、チュートリアルの作成者に報告する必要があります。OPAMユーザーにも機能することを確認する必要があります。)

于 2013-01-17T18:25:36.033 に答える