問題タブ [ocamlbuild]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ocaml - 警告 ocamlbuild/oasis の警告を防ぐには?
私は OCaml と Oasis を使用して、適切な入力を ocamlbuild に生成しています。
ここで非常に簡単な質問です。ソフトウェアをコンパイルするたびにocaml setup.ml -build
、次の警告が表示されます。
これらを停止するにはどうすればよいですか?
編集
これらはすべて、oasis によって生成された myocamlbuild.ml で定義されていることがわかりました。おそらく、私が使用しているシェル zsh は、ocaml のソースが ocamlfind の場所やその他の変数などに関する情報を取得する方法とは異なります。したがって、警告。警告を修正する方法がわからないかどうかを確認します。
ocaml - _oasis または OCamlbuild に注釈を生成するように指示するには?
問題は単純です。OCamlBuildまたは Oasis のマニュアルのどこにも、コンパイル時に注釈ファイル (.cmt) を自動的に生成するようにツールに指示する方法が見つかりません。
Emacs を使用しているときに、Merlin が式の型を伝えるときに注釈ファイルを使い果たすため、注釈ファイルは便利です。
preprocessor - ocamlbuild と camlp5 でコンパイルする
通常の Makefile の使用を避けるために、私が取り組んでいるプロジェクトを ocamlbuild でコンパイルしようとしていますが、これは少し複雑です。
具体的には、最初にコンパイルする必要がある構文拡張ファイル (extend.ml) があります。通常の Makefile には次のルールがあります。
次に、依存関係を計算するために、次のようなルールがあります。
もちろん、オブジェクト ファイルの作成には、上記と同様のルールが必要です。
私の質問は、これらのルール/要件を1 つの ocamlbuild コマンドに統合するにはどうすればよいですか (可能な場合) ?
最初にextend.mlファイルをコンパイルしてから、次のコマンドを使用しようとしました:
しかし、私はそれが決して最適だとは思いません。
残念ながら、私は ocamlbuild をコンパイル ツールとして使用することに慣れていないので、助けていただければ幸いです。
plugins - Ocamlbuild プラグイン: ターゲットが変更された場合にのみ動的な依存関係をビルドします
ocamlbuild プラグインを作成しようとしています。目標は、Qt アプリを構築することです (当面は OCaml コードなしで)。最終的なリンク フェーズを処理するために、obj、mocs、uis、および rcs のリストを .qtobjs ファイル (.itarget など) に書き込み、Qt ライブラリのリストを .qtpackages ファイルに書き込みました。これらのファイルに適用されるルールは、これらのリストを解析し、すべてをリンクする前にオブジェクト、モックなどを動的に構築します。
問題は、変更されていないターゲットを動的にビルドしたくないということです。以下のルールを参照してください。
必要がないときは「ビルド」と呼びたくありません。
注意: 関数
私の問題を解決できます。
ocaml - Ocamlbuild は依存関係を _build にコピーします
ocamlbuild を使用して piqi を自動的に呼び出し、 protobuf定義から ocaml モジュールを生成しようとしています。%.protobuf
これは、ファイルからに移動し%.proto.piqi
、最後にに移動する必要がある 2 段階のプロセス%_piqi.ml
です。
最初のステップのルールは次のようになります。
しかし、個々のファイルがソース内で相互にインポートされるため、%.proto.piqi
ターゲットは実際にはソース ディレクトリ内のすべての「*.proto」ファイルに依存しているため、これは機能しません。.proto
しかし、この依存関係を ocamlbuild で表現する方法がわかりません。_build
1 つだけではなく、すべての proto ファイルがコピーされていれば十分です。~dep
ocaml - 2 つのカスタム OCaml モジュールを「corebuild」でリンクするにはどうすればよいですか
nhc.ml と test.ml という 2 つの OCaml モジュールがあります。これらのモジュールは両方とも、parser.mly、scanner.mll、ast.mli を参照します。
目標は、まだ test.ml の関数を参照できる nhc.native という 1 つの実行可能ファイルを用意することです。
2 つのモジュールを別々に分離すると、次のように機能します。
しかし、次のように corebuild を使用して 2 つをリンクしようとすると:
エラーが発生します:
最初にテスト実行可能ファイル (test.native) を mkaing せずに同じコマンドを実行すると、次のエラーが発生します。
指定された機能を取得するにはどうすればよいですか?
ocaml - 実行可能ファイルを生成するだけでなく、自分のファイルを実行するように ocamlbuild に指示する方法はありますか?
今、使用するmlファイルを再コンパイルして実行したい場合
これを行うためのより短い方法はありますか?Haskell は言うだけで実行できますがrunghc myfile.hs
、ocamlbuild や ocamlfind も同様の機能を提供するのではないでしょうか。
ocaml - OCamlbuild で OCaml インターフェイスを無視する
.mli
大きなライブラリがあり、すべてのモジュールをパックするが、ソース ディレクトリに存在するファイルを無視するターゲットを作成したいと考えています。これを簡単に達成できるocamlbuild
プラグインまたは特別なセットを介して使用する簡単な方法はありますか?_tags
私が考えることができる1つの潜在的な解決策はOCaml
、プラグインの新しいコンパイルルールであり、ビルドインルールよりも優先されるように設定します。
ありがとうございました。
windows - 奇妙なエラーが発生し、Windows で OCaml プログラムをビルドできません
私は最近、OCaml を動作させようとしてきましたが、インタプリタは問題なく動作します。ネイティブの実行可能ファイルをビルドすることはできません。これが私のプログラムです:
実行するocaml program.ml
と、期待される出力が得られますHello, World!
。ただし、実行すると次のocamlbuild program.native
ようになります。
それでも、ディレクトリC:\Users\User\
を見ると、それprogram.ml.depends
が存在することがわかります。もう一度実行すると、次のようになります。
だから存在するの!?!?!?! 内容はmy_prog.ml:
. ちなみに、この_build
ディレクトリには、_digests、_log、program.ml、および sanatize.sh というファイルが含まれています。以下は、-verbose 10 を指定してコマンドを実行したときの出力です。
そして、私がそれを強制した場合:
同じコマンドをもう一度実行します。
この時点で、program.native ファイルを取得しますが、機能せず、テキスト エディターで開くと、!<symlink>
. 使用後は、存在しないreadlink
ものを指します。_build/program.native
この時点で私は困惑しており、次にどこに行けばよいかわかりません。残念なことに、このプログラミング言語を機能させるのは非常に困難です。
OCamlをコンパイルするためだけにvmをデュアルブート/インストールする必要はありません。
最後に、OPAM のインストール方法を教えてください。