問題タブ [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 プロジェクトにビルド ツールを追加 (Ragel)
LLVM Ocaml チュートリアルのコンテキストで、 Ragelソース ファイルを Ocaml ソース ファイルにコンパイルする機能を追加しようとしています。具体的には、拡張子が「.rl」のソース ファイルの場合は、次のように実行します。
もちろん、ビルドシステムは結果の Ocaml ファイルを通常どおりコンパイルする必要があります。これを行う簡単な方法は何ですか?
_tags ファイルは次のとおりです。
myocamlbuild.ml ファイルは次のとおりです。
c++ - ocamlbuild を使用した C++ コードのビルド
.o
を使用して C ソースからファイルをビルドする方法に関する多くのガイドを見つけましたocamlbuild
。ocamlbuild
ただし、これらはそのままではビルドできないC++ ファイルには適用されません。
toからのルールを提供するファイルを書き込もうとしましたがmyocamlbuild.ml
(リクエスト後に以下に表示) 、ファイルをどう処理するかわからないという不平を言って失敗します (コンパイラがコマンド ライン フラグを介して に設定されている場合でも)。.cpp
.o
ocamlc
.cpp
g++
ファイルlibsoundness.clib
は一連のファイルで構成されてい.o
ます。
するとocamlbuild libsoundness.a
、次の出力が得られます。
C ++の他の唯一の解決策はocamlbuild-ctools
、Webサイトが機能していないようです(ソースをダウンロードできませんでした)。
何か案は?
compiler-construction - OCamlで静的にプロジェクトをビルドする方法
一部のライブラリが利用できないシステム (yojson、curl、cryptokit ですが、おそらくそれほど重要ではありません) でコンパイル/リンク/実行するために OCaml プロジェクトを準備する必要があります。
これまで私は使用していました:
一部のパッケージが欠落している場合、明らかに機能しません。私の試みは、ライブラリパスの入力を探すことでした
不足しているライブラリのフォルダーをプロジェクトのフォルダーに手動でコピーします。ここにそれらのリストがあります
わかりましたので、プロジェクトからすべてのファイルを段階的にコンパイルしてから、次を使用してすべてを実行可能ファイルにコンパイルしようとしました。
しかし、私は得ています:
私は少しググったところ、yojsonは静的に構築されておらず、依存関係を満たすために「biniou」ライブラリが必要であるように見えます(静的に構築するかどうかはわかりませんが、そのように見えます)。実際、最後のコマンドを次のように変更した後 (変更はアスタリスクでマークされています):
以前のエラーは発生しませんが、新しいエラーが発生しました:
ああ、yojson/curl/cryptokit が依存しているすべてのライブラリを含めるわけではありません >:(。助けてもらえますか?さらに、ocamlbuild を使用してそれを行う簡単な方法はありますか?
build - .cma ファイルの作成 OCaml
OCaml は初めてで、そのHANSEIライブラリを使用しようとしています。そのためには、ここで言及されている caml-shift.tar.gz とともに、ここで言及されているいくつかの .ml および .mli ファイルを含める必要があります。
私の MakeFile の内容の最初の行は次のとおりです。
MakeFile のコメント セクションでは、他の .ml および .mli ファイルと一緒に delimcc.cma ファイルを使用するように提案されていますが、.cma ファイルの作成方法がわかりません。作成済みの delimcc.cma ファイルが見つかりません。これで私を助けてください。私の理解が間違っている場合はお知らせください。ありがとう!
makefile - ocamlbuild と OUnit
次のような構造のプロジェクトがあります。
はMakefile
次のようなものです。
を実行するmake tests
と (ビルド後にmain.byte
)、次のエラーが返されます。
ocamlbuild
にリンクできないことを示していますmain.byte
。見た目のtests
ルールはどうあるべきですか?Makefile
ocaml - OCaml ライブラリの作成
他の OCaml プロジェクトで使用できるライブラリを作成しようとしていますが、完全に迷っています。
私は現在ocamlbuild
、実行可能ファイルを吐き出すのに最適なツールを使用していますが、そこからライブラリを取得する方法がわかりません。
ocamlopt
andで -a オプションを発見しましたが、そのocamlc
使用方法がよくわかりません。私が見つけたドキュメント (たとえば、こちら) は、ある程度の既存の知識を前提としているようです。.a ファイルが何であるかさえ知りません。それを実行した後、出力されたファイルのうち、このライブラリに依存するプロジェクトをビルドする必要があるのはどれですか? アプリケーションがライブラリ コードの署名を認識できるように、mli ファイルが必要ですか、それとも何らかの形で出力に含まれていますか? また、Java の .jar ファイルのように、すべてのファイルをまとめてパッケージ化できると便利です。
いずれにせよ、ocamlbuild
呼び出す必要がある場合は、ocamlopt -a
依存関係を手動で指定するか、スクリプトをハックする必要があるため、これらすべてを自分でやりたいと思っていますocamldep
-ocamlbuild
修正するはずだったもの. ただし、ライブラリを構築するように指示する方法がわかりません。
必要に応じてオアシスや OPAM などを使用したいと考えていますが、最初は基本的なツールだけを使用してこれを行う方法を学びたいと考えています。
ocaml - ocamlbuild を使用したモジュール パック
次のファイル階層があります。
そして、私は次のことができるようにしたい:
モジュールfoo.ml
を作成するときに考慮に入れるようにocamlbuild に指示するにはどうすればよいですか?Foo
編集 1
daniel-bünzli さんの回答のおかげで、やりたいことができました。だから今、私は次のシナリオにいます:
現在の問題は、Toto.Bar
によって遮られているように見えることFoo.Bar
です。Toto.Bar
のコンテンツにアクセスできません。
編集 2
実際、それは本当の問題ではありません。
名前を変更しましたFoo/bar.ml
-> Foo/fooBar.ml
.
だから私は次のものを持っていますfoo.ml
:
私の理解が正しければ、Jane Street の人たちはCore_kernel
withCore_list
やその他のモジュールで同じことをしています。
ocaml - OCaml 4.02.0 での mark_tag_used 警告
OCaml 4.02 (opam を使用) でコードを試しているところですが、次のような多くの警告が表示されます。
しかし、それはで定義されていmyocamlbuld.ml
ます:
私はそれを取り除くことができます:
しかし、タグを使用するたびに、そのような行が 1 つ必要です。また、私のコードは以前のバージョンの OCaml ではビルドされません。一般的な修正は何ですか?
(完全なコードはhttps://github.com/0install/0installにあります)