आप इसे एक पुस्तकालय के रूप में अपने प्रोजेक्ट से अन्य ओकैम पुस्तकालयों के साथ स्थापित कर सकते हैं, और इसे एक्सेस कर सकते हैं।
ऐसा करने का एक बहुत ही आसान तरीका ocamlfind
के लिए एक मेटा फ़ाइल लिखना है। कहीं भी एक निर्देशिका बनाएं जहां आप "व्यक्तिगत लाइब्रेरी" प्रोजेक्ट को पकड़ने में सहज महसूस करें। मान लें कि आपके पास tools.ml
और tools.mli
है, और आपका कोड कुछ findlib पैकेज (उदाहरण के लिए unix
और bigarray
) पर निर्भर करता है। आप मेटा इस प्रकार दिखाई देगा:
name="tools"
description="personal collection of utilities"
version="0.1"
requires="unix,bigarray"
archive(byte)="tools.cmo"
archive(native)="tools.cmx"
बार जब आप इस मेटा फ़ाइल में लिखा है, यह "स्थापित करने के लिए" पुस्तकालय ocamlfind
पूछने के लिए आसान है (और इसे हटाने यदि आप चाहते हैं), और अपने अन्य में उपयोग परियोजनाओं। स्थापित करने के लिए, वाक्यविन्यास ocamlfind install <name> <meta-file> <file1> <file2> ...
है जहां <file1>, <file2>..
वह फ़ाइल है जिसे आप स्थापना निर्देशिका में शामिल करना चाहते हैं। मूल संकलन के लिए आपको कम से कम tools.cmi
tools.cmo
(और tools.o
और tools.cmx
) होना चाहिए, लेकिन उदाहरण के लिए tools.mli
भी होना अच्छा है (और, यदि आप कोड प्रदान करना चाहते हैं, tools.ml
)।
ocamlfind install tools META tools.cmi tools.cmo tools.o tools.cmx tools.mli
(पाठ्यक्रम tools.cmo
आदि के अस्तित्व के लिए है, कि तुम चाहिए install
के बाद आप अपने पैकेज तैयार की है है। आप ocamlbuild
का इस्तेमाल किया है, तो वे एक _build
उपनिर्देशिका में होने की संभावना है, इसलिए ocamlfind install ... _build/tools.cmo ...
।)
अपने कई परियोजनाओं से, आप सीधे अगर यह क्या आप पहले से ही अपने कार्यक्रम संकलन करने के लिए क्या है आसानी से अपने पुस्तकालय का उपयोग कर सकते हैं, या तो ocamlfind toold का उपयोग कर
ocamlfind ocamlc -package tools ....
या उदाहरण के लिए ocamlbuild
द्वारा प्रदान की गई सुविधाओं के माध्यम से, अपने टैग में package(tools)
जोड़ना।
यदि आप इसे करने के लिए एक परिवर्तन किया अपने पुस्तकालय को पुनर्स्थापित और यह अपनी परियोजनाओं से सुलभ
ocamlfind remove tools
ocamlfind install tools META ...
तुम भी oasis
के माध्यम से यह सब संभाल सकता है, जो ocamlfind/ocamlbuild को स्वचालित करने के शीर्ष पर एक परत है चाहता हूँ करने के लिए यह प्रोसेस। मैं अपने सिर के शीर्ष से ऐसे उदाहरण देने के लिए oasis
के साथ पर्याप्त परिचित नहीं हूं, लेकिन यह इस तरह के एक प्रतिबंधित मामले (एक फ़ाइल लाइब्रेरी) के लिए समान रूप से सरल होना चाहिए, और यदि आप बाद में अपनी लाइब्रेरी का विस्तार करना चाहते हैं तो बेहतर स्केल करना चाहिए (उदाहरण के लिए यह दस्तावेज उत्पादन, पूर्व संकलन विन्यास भी संभाल सकता है ...)।
आपकी टिप्पणी के लिए धन्यवाद ... क्या आप ओपी में अपना परीक्षण देख सकते हैं? – SoftTimur
@ सॉफ़्ट टिमूर: आपके मामले में सही संकलन कमांड 'ocamlfind ocamlc -package tools -linkpkg test.ml -o test' है। विकल्प '-पैकेज टूल्स' पैकेज को जोड़ता है, और '-linkpkg' इसे निष्पादन योग्य बनाने के लिए लिंक करता है (जब आप निष्पादन योग्य उत्पन्न करते हैं, लेकिन '.cmo'' को संकलित करते समय आवश्यक नहीं है)। आप शायद 'ocamlbuild -tag "पैकेज (उपकरण)" test.byte' का भी उपयोग कर सकते हैं (परीक्षण नहीं किया गया)। – gasche
@gashe: 'ocamlfind ocamlc -package tools -linkpkg test.ml -o test' केवल तभी काम करता है जब 'test.ml' निष्पादन योग्य' टूल' के समान फ़ोल्डर में होता है ... क्या आप जानते हैं क्यों? – SoftTimur