Bunu bağımsız bir kitaplık olarak paketleyebilir, diğer OCaml kitaplıklarıyla birlikte yükleyebilir ve projenizden bir kitaplık olarak buna erişebilirsiniz.
Bunu yapmanın çok basit bir yolu ocamlfind
için bir META dosyası yazmaktır. Size "kişisel kütüphane" projesi tutmak için rahat bir yerde bir dizin oluşturun. tools.ml
ve tools.mli
olduğunu ve kodunuzun bazı findlib paketlerine (örneğin, unix
ve bigarray
) bağlı olduğunu varsayalım.
bu META dosyayı yazdıktan sonra
name="tools"
description="personal collection of utilities"
version="0.1"
requires="unix,bigarray"
archive(byte)="tools.cmo"
archive(native)="tools.cmx"
, "install" kütüphane için ocamlfind
sormak kolaydır (ve isterseniz kaldırmak) ve diğer kullanmak: Sen META şu şekilde görünecektir projeler. Yüklemek için sözdizimi ocamlfind install <name> <meta-file> <file1> <file2> ...
, burada <file1>, <file2>..
yükleme dizininde görmek istediğiniz dosyadır. En azından tools.cmi
tools.cmo
(ve yerel derleme için ve tools.cmx
) olmalıdır, ancak örneğin tools.mli
olması iyi bir uygulamadır (ve, kodu sağlamak istiyorsanız, tools.ml
).
ocamlfind install tools META tools.cmi tools.cmo tools.o tools.cmx tools.mli
(size paketi derledik sonra vb Tabii tools.cmo
Of var olması gereken, o size install
zorunluluktur. Eğer ocamlbuild
kullandıysanız, bu kadar ocamlfind install ... _build/tools.cmo ...
, bir _build
alt dizininde olması muhtemeldir.)
Bu zaten programlarını derlemek için ne olduğunu doğrudan eğer sayısız projelerden
, sen ocamlfind toold kullanarak ya kolayca kütüphane kullanabilirsiniz
ocamlfind ocamlc -package tools ....
veya ocamlbuild
tarafından sağlanan imkanlar aracılığıyla, etiketlerinize package(tools)
ekleyerek.Eğer buna bir değişiklik yapılmaması durumunda
Kütüphanenizi yeniden kurmak ve onu da ocamlfind/ocamlbuild otomatik hale getirmek üstüne bir katman olan oasis
üzerinden tüm bu ele verebilir
ocamlfind remove tools
ocamlfind install tools META ...
projeleriniz erişilebilir istiyorum bu süreç. Kafamın tepesinden bu tür örnekler vermek için oasis
ile yeterince tanıdık değilim, ancak bu tür bir kısıtlanmış durumda (tek dosya kitaplığı) için eşit derecede basit olmalı ve daha sonra kitaplığınızı genişletmek isterseniz daha iyi ölçeklenmelidir (örn. Ayrıca dokümantasyon oluşturma, ön derleme yapılandırması ...) ile de ilgilenebilir.
Yorumunuz için teşekkürler ... OP'deki testime bir göz atabilir misiniz? – SoftTimur
@SoftTimur: Davanızdaki doğru derleme komutu ocamlfind ocamlc -package tools -linkpkg test.ml -o testidir. '-package tools' seçeneği paketi ekler ve '-linkpkg 'bir yürütülebilir dosyayı (bir yürütülebilir dosyayı oluşturduğunuzda, ancak .cmo'ya derlerken değil) üretmek için onu bağlar. Muhtemelen 'ocamlbuild -tag 'paketini de (araçlar) test.byte (test edilmemiştir) kullanabilirsiniz. – gasche
@gashe: 'ocamlfind ocamlc -package tools -linkpkg test.ml -o testi' sadece 'test.ml' yürütülebilir klasörle aynı klasördeyken çalışır ... Biliyor musunuz? – SoftTimur