এটি হল ocamlc কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
ocamlc - OCaml বাইটকোড কম্পাইলার
সাইনোপিসিস
ocamlc [ অপশন ] ফাইলের নাম ...
ocamlc.opt [ অপশন ] ফাইলের নাম ...
বর্ণনাঃ
OCaml বাইটকোড কম্পাইলার ocamlc(1) OCaml সোর্স ফাইলগুলিকে বাইটকোড অবজেক্ট ফাইলগুলিতে কম্পাইল করে
এবং স্বতন্ত্র বাইটকোড এক্সিকিউটেবল ফাইল তৈরি করতে এই অবজেক্ট ফাইলগুলিকে লিঙ্ক করে। এইগুলো
এক্সিকিউটেবল ফাইলগুলি তখন বাইটকোড ইন্টারপ্রেটার দ্বারা চালিত হয় ocamlrun(1).
সার্জারির ocamlc(1) কমান্ডের একটি কমান্ড-লাইন ইন্টারফেস রয়েছে যা বেশিরভাগ সি কম্পাইলারের মতো।
এটি বিভিন্ন ধরণের আর্গুমেন্ট গ্রহণ করে এবং সেগুলিকে ক্রমানুসারে প্রক্রিয়া করে:
.mli তে শেষ হওয়া আর্গুমেন্টগুলিকে সংকলন ইউনিট ইন্টারফেসের জন্য সোর্স ফাইল হিসাবে নেওয়া হয়।
ইন্টারফেসগুলি সংকলন ইউনিট দ্বারা রপ্তানি করা নামগুলি নির্দিষ্ট করে: তারা এর সাথে মান নাম ঘোষণা করে
তাদের প্রকার, পাবলিক ডাটা টাইপ সংজ্ঞায়িত করুন, বিমূর্ত ডাটা টাইপ ঘোষণা করুন এবং আরও অনেক কিছু। থেকে
ফাইল x.mli, the ocamlc(1) কম্পাইলার ফাইলটিতে একটি সংকলিত ইন্টারফেস তৈরি করে x.cmi
.ml-এ শেষ হওয়া আর্গুমেন্টগুলি সংকলন ইউনিট বাস্তবায়নের জন্য সোর্স ফাইল হিসাবে নেওয়া হয়।
বাস্তবায়ন ইউনিট দ্বারা রপ্তানি করা নামগুলির জন্য সংজ্ঞা প্রদান করে এবং এতে রয়েছে
অভিব্যক্তি তাদের পার্শ্ব প্রতিক্রিয়া জন্য মূল্যায়ন করা হবে. ফাইল থেকে x.ml, the ocamlc(1)
কম্পাইলার ফাইলটিতে কম্পাইল করা অবজেক্ট বাইটকোড তৈরি করে x.cmo
যদি ইন্টারফেস ফাইল x.mli বিদ্যমান, বাস্তবায়ন x.ml বিরুদ্ধে চেক করা হয়
সংশ্লিষ্ট কম্পাইল ইন্টারফেস x.cmi, যা বিদ্যমান বলে ধরে নেওয়া হয়। যদি কোন ইন্টারফেস না x.mli
প্রদান করা হয়, এর সংকলন x.ml একটি সংকলিত ইন্টারফেস ফাইল তৈরি করে x.cmi উপরন্তু
কম্পাইল করা অবজেক্ট কোড ফাইলে x.cmo ফাইল x.cmi উত্পাদিত একটি অনুরূপ
ইন্টারফেস যা বাস্তবায়নে সংজ্ঞায়িত সবকিছু রপ্তানি করে x.ml
.cmo-এ শেষ হওয়া আর্গুমেন্টগুলিকে কম্পাইল করা অবজেক্ট বাইটকোড হিসেবে নেওয়া হয়। এই ফাইলগুলি লিঙ্ক করা হয়
একসাথে, .ml আর্গুমেন্ট (যদি থাকে), এবং কম্পাইল করে প্রাপ্ত অবজেক্ট ফাইলের সাথে
OCaml স্ট্যান্ডার্ড লাইব্রেরি, একটি স্বতন্ত্র এক্সিকিউটেবল প্রোগ্রাম তৈরি করতে। যে ক্রমে
.cmo এবং.ml আর্গুমেন্ট কমান্ড লাইনে উপস্থাপিত হয় প্রাসঙ্গিক: সংকলন ইউনিট
রান-টাইমে সেই ক্রমানুসারে আরম্ভ করা হয়, এবং এটি a এর একটি উপাদান ব্যবহার করার জন্য একটি লিঙ্ক-টাইম ত্রুটি
ইউনিট শুরু করার আগে। অতএব, একটি দেওয়া xসবার আগে .cmo ফাইল আসতে হবে
ফাইল যা ইউনিট উল্লেখ করে x.
.cma-এ শেষ হওয়া আর্গুমেন্টগুলিকে অবজেক্ট বাইটকোডের লাইব্রেরি হিসেবে নেওয়া হয়। এর একটি লাইব্রেরি
অবজেক্ট বাইটকোড একটি একক ফাইলে এক সেট অবজেক্ট বাইটকোড ফাইল (.cmo ফাইল) প্যাক করে।
সঙ্গে লাইব্রেরি তৈরি করা হয় ocamlc -a (এর বিবরণ দেখুন -a নীচের বিকল্প)। দ্য
লাইব্রেরিতে থাকা অবজেক্ট ফাইলগুলি নিয়মিত .cmo ফাইল হিসাবে লিঙ্ক করা হয় (উপরে দেখুন),
যখন .cma ফাইল তৈরি করা হয়েছিল তখন অর্ডার নির্দিষ্ট করা হয়েছে। পার্থক্য শুধুমাত্র একটি বস্তু যদি
একটি লাইব্রেরিতে থাকা ফাইলটি প্রোগ্রামের কোথাও উল্লেখ করা হয় না, তাহলে তা নয়
লিঙ্ক করা
.c এ শেষ হওয়া আর্গুমেন্টগুলি সি কম্পাইলারে পাঠানো হয়, যা একটি .o অবজেক্ট ফাইল তৈরি করে।
এই অবজেক্ট ফাইলটি যদি প্রোগ্রামের সাথে সংযুক্ত থাকে - কাস্টম পতাকা সেট করা হয়েছে (দেখুন
বিবরণ - কাস্টম নিচে).
.o বা .a দিয়ে শেষ হওয়া আর্গুমেন্টগুলিকে C অবজেক্ট ফাইল এবং লাইব্রেরি বলে ধরে নেওয়া হয়। তারা
লিঙ্ক করার সময় সি লিঙ্কারে পাস করা হয় - কাস্টম মোড (এর বিবরণ দেখুন - কাস্টম
নিচে).
.এ শেষ হওয়া আর্গুমেন্টগুলি সি শেয়ার্ড লাইব্রেরি (DLL) বলে ধরে নেওয়া হয়। লিঙ্ক করার সময়, তারা
OCaml কোড থেকে রেফারেন্সকৃত বাহ্যিক C ফাংশনগুলির জন্য অনুসন্ধান করা হয় এবং তাদের নামগুলি হল
জেনারেটেড বাইটকোড এক্সিকিউটেবল লেখা। রান-টাইম সিস্টেম ocamlrun(1) তারপর লোড হয়
প্রোগ্রাম স্টার্ট আপ সময় গতিশীলভাবে তাদের.
লিঙ্কিং পর্বের আউটপুট হল একটি ফাইল যাতে সংকলিত বাইটকোড হতে পারে
OCaml বাইটকোড ইন্টারপ্রেটার দ্বারা নির্বাহিত: কমান্ড ocamlrun(1)। যদি caml.out হয়
লিঙ্কিং ফেজ দ্বারা উত্পাদিত ফাইলের নাম, কমান্ড ocamlrun caml.out
arg1 arg2 ... arg এর মধ্যে থাকা সংকলিত কোডটি কার্যকর করে caml.out, হিসাবে এটি পাস
অক্ষর স্ট্রিং যুক্তি arg1 থেকে arg। (দেখুন ocamlrun(1) আরো বিস্তারিত জানার জন্য।)
বেশিরভাগ সিস্টেমে, লিঙ্কিং ফেজ দ্বারা উত্পাদিত ফাইল সরাসরি চালানো যেতে পারে, যেমন:
./caml.out arg1 arg2 ... arg. উত্পাদিত ফাইলটিতে এক্সিকিউটেবল বিট সেট রয়েছে এবং এটি
নিজেই বাইটকোড ইন্টারপ্রেটার চালু করতে পরিচালনা করে।
ocamlc.opt হিসাবে একই কম্পাইলার ocamlc, কিন্তু নেটিভ-কোড কম্পাইলার দিয়ে কম্পাইল করা হয়েছে
ocamlopt(1)। সুতরাং, এটা ঠিক মত আচরণ করে ocamlc, কিন্তু দ্রুত কম্পাইল করে। ocamlc.opt may
OCaml এর সমস্ত ইনস্টলেশনে উপলব্ধ নয়।
বিকল্প
নিম্নলিখিত কমান্ড-লাইন বিকল্পগুলি দ্বারা স্বীকৃত হয় ocamlc(1).
-a কমান্ডে দেওয়া অবজেক্ট ফাইল (.cmo ফাইল) দিয়ে একটি লাইব্রেরি (.cma ফাইল) তৈরি করুন
লাইন, একটি এক্সিকিউটেবল ফাইলে তাদের লিঙ্ক করার পরিবর্তে। লাইব্রেরির নাম দিতে হবে
সঙ্গে সেট করা -o বিকল্প।
If - কাস্টম, -clib or -ccopt বিকল্পগুলি কমান্ড লাইনে পাস করা হয়, এই বিকল্পগুলি
ফলে .cma লাইব্রেরিতে সংরক্ষণ করা হয়. তারপর, এই লাইব্রেরির সাথে লিঙ্ক করা
স্বয়ংক্রিয়ভাবে ফিরে যোগ করে - কাস্টম, -clib এবং -ccopt অপশন যেমন তারা ছিল
কমান্ড লাইনে প্রদান করা হয়, যদি না -noautolink অপশন দেওয়া হয়। উপরন্তু,
একটি সাবস্ট্রিং $ক্যামলোরিজিন ভিতরে a -ccopt বিকল্পগুলি সম্পূর্ণ পথ দ্বারা প্রতিস্থাপিত হবে
ফাইলের নাম বাদ দিয়ে .cma লাইব্রেরিতে। - absname সম্পূর্ণ ফাইলের নাম দেখান
ভুল বার্তা.
-না সংকলন সম্পর্কে বিস্তারিত তথ্য ডাম্প করুন (প্রকার, বাঁধাই, টেল-কল, ইত্যাদি)।
ফাইলের জন্য তথ্য src.ml ফাইলে রাখা হয় src.না. টাইপের ক্ষেত্রে
ত্রুটি, ত্রুটির আগে টাইপ-চেকার দ্বারা অনুমান করা সমস্ত তথ্য ডাম্প করুন। দ্য
src.annot ফাইলটি দেওয়া emacs কমান্ডের সাথে ব্যবহার করা যেতে পারে emacs/caml-types.el থেকে
প্রদর্শন প্রকার এবং অন্যান্য টীকা ইন্টারেক্টিভভাবে।
-বিন-এনোট
সংকলন সম্পর্কে বিস্তারিত তথ্য ডাম্প করুন (প্রকার, বাঁধাই, টেল-কল, ইত্যাদি)
বাইনারি বিন্যাসে। ফাইলের জন্য তথ্য src.ml ফাইলে রাখা হয় src.cmt ভিতরে
টাইপ ত্রুটির ক্ষেত্রে, টাইপ-চেকার দ্বারা অনুমান করা সমস্ত তথ্য আগে ডাম্প করুন
ভূল. দ্বারা উত্পাদিত টীকা ফাইল -বিন-এনোট আরো তথ্য আছে
এবং উত্পাদিত ফাইলের তুলনায় অনেক বেশি কম্প্যাক্ট -না.
-c শুধুমাত্র কম্পাইল. সংকলনের লিঙ্কিং পর্বটি দমন করুন। সোর্স কোড ফাইল হয়
কম্পাইল করা ফাইলে পরিণত হয়, কিন্তু কোনো এক্সিকিউটেবল ফাইল তৈরি হয় না। এই বিকল্প হয়
আলাদাভাবে মডিউল কম্পাইল করার জন্য দরকারী।
-cc ccomp
ব্যবহার ccomp "কাস্টম রানটাইম" মোডে লিঙ্ক করার সময় সি লিঙ্কার হিসাবে (দেখুন - কাস্টম
বিকল্প) এবং .c সোর্স ফাইল কম্পাইল করার জন্য C কম্পাইলার হিসাবে।
-clib -llibname
পাস -llibname "কাস্টম রানটাইম" মোডে লিঙ্ক করার সময় সি লিঙ্কারের বিকল্প
(দেখুন - কাস্টম বিকল্প)। এর ফলে প্রদত্ত সি লাইব্রেরি এর সাথে লিঙ্ক করা হয়
প্রোগ্রাম.
-ccopt পছন্দ
দেওয়া পাস পছন্দ সি কম্পাইলার এবং লিঙ্কারের সাথে, যখন "কাস্টম" এ লিঙ্ক করা হয়
রানটাইম" মোড (দেখুন - কাস্টম বিকল্প)। এই ক্ষেত্রে, -ccopt -LDir সি এর কারণ হয়
ডিরেক্টরিতে সি লাইব্রেরি অনুসন্ধান করতে লিঙ্কার Dir.
-কম্প্যাট-32
জেনারেট করা বাইটকোড এক্সিকিউটেবল 32-বিট প্ল্যাটফর্ম এবং সিগন্যালে চলতে পারে তা পরীক্ষা করুন
একটি ত্রুটি যদি এটি না পারে। একটি 64-বিট মেশিনে বাইটকোড কম্পাইল করার সময় এটি কার্যকর।
-কনফিগ
এর সংস্করণ নম্বর প্রিন্ট করুন ocamlc(1) এবং এর কনফিগারেশনের একটি বিশদ সারসংক্ষেপ,
তারপর প্রস্থান করুন।
- কাস্টম
"কাস্টম রানটাইম" মোডে লিঙ্ক করুন। ডিফল্ট লিঙ্কিং মোডে, লিঙ্কার উত্পাদন করে
বাইটকোড যা ভাগ করা রানটাইম সিস্টেমের সাথে কার্যকর করার উদ্দেশ্যে করা হয়েছে,
ocamlrun(1)। কাস্টম রানটাইম মোডে, লিঙ্কার একটি আউটপুট ফাইল তৈরি করে যা
প্রোগ্রামের জন্য রানটাইম সিস্টেম এবং বাইটকোড উভয়ই রয়েছে। ফলে
ফাইলটি বড়, তবে এটি সরাসরি চালানো যেতে পারে, এমনকি যদি ocamlrun(1) আদেশ হল
ইনস্টল করা না. তাছাড়া, "কাস্টম রানটাইম" মোড OCaml কোডের সাথে লিঙ্ক করতে সক্ষম করে
ব্যবহারকারী-সংজ্ঞায়িত সি ফাংশন।
কখনও ব্যবহার করবেন না ফালা(1) দ্বারা উত্পাদিত executables উপর কমান্ড ocamlc - কাস্টম, এই
এক্সিকিউটেবলের বাইটকোড অংশটি সরিয়ে ফেলবে।
-dllib -llibname
সি শেয়ার্ড লাইব্রেরির ব্যবস্থা করুন Dlllibname.so রান দ্বারা গতিশীলভাবে লোড করা হবে-
সময় ব্যবস্থা ocamlrun(1) প্রোগ্রাম শুরুর সময়।
-dllpath Dir
ডিরেক্টরি যোগ করে Dir শেয়ার্ড সি লাইব্রেরির জন্য রান-টাইম অনুসন্ধানের পথে। এ
লিঙ্ক-টাইম, শেয়ার্ড লাইব্রেরিগুলি স্ট্যান্ডার্ড সার্চ পাথে অনুসন্ধান করা হয় (একটি
এর সাথে সম্পর্কিত -I বিকল্প)। দ্য -dllpath বিকল্প সহজভাবে সঞ্চয় Dir মধ্যে
উত্পাদিত এক্সিকিউটেবল ফাইল, যেখানে ocamlrun(1) এটি খুঁজে পেতে এবং এটি ব্যবহার করতে পারেন।
প্যাকের জন্য পরিচয়
এই বিকল্পটি সঙ্গে সামঞ্জস্যের জন্য গৃহীত হয় ocamlopt(1); এটা কিছুই করে না।
-g কম্পাইল এবং লিঙ্ক করার সময় ডিবাগিং তথ্য যোগ করুন। এই বিকল্পটি প্রয়োজন
যাতে প্রোগ্রামটি ডিবাগ করতে সক্ষম হয় ocamldebug(1) এবং স্ট্যাক উত্পাদন
ব্যাকট্রেস যখন প্রোগ্রামটি একটি অপ্রকাশিত ব্যতিক্রমে সমাপ্ত হয়।
-i কম্পাইলারকে সমস্ত সংজ্ঞায়িত নাম মুদ্রণ করুন (তাদের অনুমানকৃত প্রকারের সাথে বা তাদের
সংজ্ঞা) একটি বাস্তবায়ন কম্পাইল করার সময় (.ml ফাইল)। কোন কম্পাইল করা ফাইল নেই (.cmo
এবং .cmi ফাইল) উত্পাদিত হয়. এটি দ্বারা অনুমানকৃত প্রকারগুলি পরীক্ষা করার জন্য উপযোগী হতে পারে
কম্পাইলার এছাড়াও, যেহেতু আউটপুট ইন্টারফেসের সিনট্যাক্স অনুসরণ করে, এটি সাহায্য করতে পারে
একটি ফাইলের জন্য একটি স্পষ্ট ইন্টারফেস (.mli ফাইল) লিখতে: শুধু স্ট্যান্ডার্ড পুনঃনির্দেশ করুন
একটি .mli ফাইলে কম্পাইলারের আউটপুট, এবং সমস্ত মুছে ফেলার জন্য সেই ফাইলটি সম্পাদনা করুন
অরপ্তানিকৃত নামের ঘোষণা।
-I ডিরেক্টরি
কম্পাইল করা ইন্টারফেসের জন্য অনুসন্ধান করা ডিরেক্টরির তালিকায় প্রদত্ত ডিরেক্টরি যোগ করুন
ফাইল (.cmi), কম্পাইল করা অবজেক্ট কোড ফাইল (.cmo), লাইব্রেরি (.cma), এবং সি লাইব্রেরি
দিয়ে নির্দিষ্ট করা হয়েছে -clib -lরচনা . ডিফল্টরূপে, বর্তমান ডিরেক্টরিটি প্রথমে অনুসন্ধান করা হয়,
তারপর স্ট্যান্ডার্ড লাইব্রেরি ডিরেক্টরি। সঙ্গে ডিরেক্টরি যোগ করা হয়েছে -I পরে অনুসন্ধান করা হয়
বর্তমান ডিরেক্টরি, কমান্ড লাইনে যে ক্রমে তাদের দেওয়া হয়েছিল,
কিন্তু স্ট্যান্ডার্ড লাইব্রেরি ডিরেক্টরির আগে। এছাড়াও বিকল্প দেখুন -নোস্টডিলিব.
যদি প্রদত্ত ডিরেক্টরি দিয়ে শুরু হয় +, এটা স্ট্যান্ডার্ড লাইব্রেরির আপেক্ষিক নেওয়া হয়
ডিরেক্টরি এই ক্ষেত্রে, -I +কম্পাইলার-লিবস সাবডিরেক্টরি যোগ করে compiler-libs of
সার্চ পাথে স্ট্যান্ডার্ড লাইব্রেরি।
-ইম্পল ফাইলের নাম
ফাইল কম্পাইল করুন ফাইলের নাম একটি বাস্তবায়ন ফাইল হিসাবে, এমনকি যদি এর এক্সটেনশন না হয়
.ml
-intf ফাইলের নাম
ফাইল কম্পাইল করুন ফাইলের নাম একটি ইন্টারফেস ফাইল হিসাবে, এমনকি যদি এর এক্সটেনশন .mli না হয়।
-intf- প্রত্যয় স্ট্রিং
দিয়ে শেষ হওয়া ফাইলের নাম চিনুন স্ট্রিং ইন্টারফেস ফাইল হিসাবে (ডিফল্টের পরিবর্তে
.mli)।
-দস্তাবেজ রাখুন
জেনারেটেড .cmi ফাইলে ডকুমেন্টেশন স্ট্রিং রাখুন।
-তালা রাখা
জেনারেটেড .cmi ফাইলগুলিতে অবস্থানগুলি রাখুন৷
-লেবেল
লেবেল টাইপ উপেক্ষা করা হয় না, লেবেল অ্যাপ্লিকেশন ব্যবহার করা হতে পারে, এবং লেবেল করা হয়
পরামিতি যেকোনো ক্রমে দেওয়া যেতে পারে। এটি ডিফল্ট।
-লিংকঅল
লাইব্রেরিতে থাকা সমস্ত মডিউলকে লিঙ্ক করতে বাধ্য করুন৷ যদি এই পতাকাটি না হয়৷
প্রদত্ত, রেফারেন্সবিহীন মডিউল সংযুক্ত করা হয় না। একটি লাইব্রেরি তৈরি করার সময় (বিকল্প -a),
সেট করা -লিংকঅল বিকল্পটি জড়িত প্রোগ্রামগুলির পরবর্তী সমস্ত লিঙ্কগুলিকে বাধ্য করে
লাইব্রেরিতে থাকা সমস্ত মডিউল লিঙ্ক করতে লাইব্রেরি।
-মেক-রানটাইম
একটি কাস্টম রানটাইম সিস্টেম তৈরি করুন (বিকল্প দ্বারা নির্দিষ্ট ফাইলে -o) অন্তর্ভুক্ত করা
কমান্ড লাইনে দেওয়া সি অবজেক্ট ফাইল এবং লাইব্রেরি। এই কাস্টম রানটাইম
সিস্টেমটি পরে বিকল্পের সাথে উত্পাদিত বাইটকোড এক্সিকিউটেবলগুলি চালানোর জন্য ব্যবহার করা যেতে পারে
ocamlc -ব্যবহার-রানটাইম রানটাইম-নাম.
-no-alias-deps
মডিউল উপনামের জন্য নির্ভরতা রেকর্ড করবেন না।
-নো-অ্যাপ-ফাংশন
ফাংশনগুলির প্রয়োগমূলক আচরণ নিষ্ক্রিয় করে। এই বিকল্পের সাথে, প্রতিটি ফাংশন
অ্যাপ্লিকেশন তার ফলাফলে নতুন ধরনের তৈরি করে এবং একই ফাংশনকে দুইবার প্রয়োগ করে
একই যুক্তিতে দুটি বেমানান কাঠামো পাওয়া যায়।
-নোসার্ট
দাবী চেক কম্পাইল করবেন না. উল্লেখ্য যে বিশেষ ফর্ম জাহির করা মিথ্যা সবসময়
সংকলিত কারণ এটি বিশেষভাবে টাইপ করা হয়। লিঙ্ক করার সময় এই পতাকাটির কোন প্রভাব নেই
ইতিমধ্যে কম্পাইল করা ফাইল।
-noautolink
.cma লাইব্রেরি লিঙ্ক করার সময়, উপেক্ষা করুন - কাস্টম, -clib এবং -ccopt সম্ভাব্য বিকল্প
লাইব্রেরিতে রয়েছে (যদি এই বিকল্পগুলি তৈরি করার সময় দেওয়া হয়
গ্রন্থাগার)। এটি উপযোগী হতে পারে যদি একটি লাইব্রেরিতে C এর ভুল স্পেসিফিকেশন থাকে
লাইব্রেরি বা সি বিকল্প; এই ক্ষেত্রে, লিঙ্ক করার সময়, সেট করুন -noautolink এবং পাস
কমান্ড লাইনে সি লাইব্রেরি এবং বিকল্পগুলি সঠিক করুন।
-কোন লেবেল
প্রকারে অ-ঐচ্ছিক লেবেল উপেক্ষা করুন। লেবেল অ্যাপ্লিকেশন ব্যবহার করা যাবে না, এবং
পরামিতি আদেশ কঠোর হয়.
-নোস্টডিলিব
ডিরেক্টরির তালিকায় স্বয়ংক্রিয়ভাবে স্ট্যান্ডার্ড লাইব্রেরি ডিরেক্টরি যোগ করবেন না
কম্পাইল করা ইন্টারফেস ফাইল (.cmi), কম্পাইল করা অবজেক্ট কোড ফাইল (.cmo) অনুসন্ধান করা হয়েছে,
লাইব্রেরি (.cma), এবং C লাইব্রেরি এর সাথে নির্দিষ্ট করা হয়েছে -clib -lরচনা . এছাড়াও বিকল্প দেখুন
-I.
-o exec-ফাইল
লিঙ্কার দ্বারা উত্পাদিত আউটপুট ফাইলের নাম উল্লেখ করুন। ডিফল্ট আউটপুট নাম
is a. আউট, ইউনিক্স ঐতিহ্যের সাথে তাল মিলিয়ে। যদি -a অপশন দেওয়া আছে, উল্লেখ করুন
উত্পাদিত গ্রন্থাগারের নাম। যদি -প্যাক অপশন দেওয়া আছে, নাম উল্লেখ করুন
উত্পাদিত প্যাক করা বস্তু ফাইলের. যদি -আউটপুট-obj অপশন দেওয়া আছে, উল্লেখ করুন
উত্পাদিত আউটপুট ফাইলের নাম। এটি একটি কম্পাইল করার সময়ও ব্যবহার করা যেতে পারে
ইন্টারফেস বা বাস্তবায়ন ফাইল, লিঙ্ক না করে, যে ক্ষেত্রে এটি নাম সেট করে
cmi বা cmo ফাইলের, এবং ফাইলের নাম পর্যন্ত মডিউল নাম সেট করে
প্রথম বিন্দু
-পেন মডিউল
ইন্টারফেস বা বাস্তবায়ন ফাইলগুলি প্রক্রিয়া করার আগে প্রদত্ত মডিউলটি খোলে। যদি
বিভিন্ন -পেন অপশন দেওয়া হয়, তারা ক্রমানুসারে প্রক্রিয়া করা হয়, ঠিক যদি
বিবৃতি খোলা! মডিউল 1;; ... খোলা! মডিউলএন;; প্রতিটি ফাইলের শীর্ষে যোগ করা হয়েছে।
-আউটপুট-obj
লিঙ্কারকে একটি বাইটকোড এক্সিকিউটেবল ফাইলের পরিবর্তে একটি সি অবজেক্ট ফাইল তৈরি করতে দিন।
এটি একটি সি লাইব্রেরি হিসাবে OCaml কোড মোড়ানোর জন্য দরকারী, যে কোনও সি প্রোগ্রাম থেকে কল করা যায়। দ্য
আউটপুট অবজেক্ট ফাইলের নাম দিয়ে সেট করতে হবে -o বিকল্প এই বিকল্পটিও করতে পারেন
একটি সি সোর্স ফাইল (.c এক্সটেনশন) বা একটি সংকলিত শেয়ার্ড/ডাইনামিক তৈরি করতে ব্যবহার করা হবে
লাইব্রেরি (. তাই এক্সটেনশন)।
-প্যাক একটি বাইটকোড অবজেক্ট ফাইল (.cmo ফাইল) এবং এর সাথে যুক্ত কম্পাইল করা ইন্টারফেস তৈরি করুন
(.cmi) যা কমান্ড লাইনে প্রদত্ত অবজেক্ট ফাইলগুলিকে একত্রিত করে, সেগুলিকে উপস্থিত করে
আউটপুট .cmo ফাইলের সাব-মডিউল হিসাবে। আউটপুট .cmo ফাইলের নাম হতে হবে
সঙ্গে দেওয়া -o বিকল্প এই ক্ষেত্রে, ocamlc -প্যাক -o p.cmo a.cmo b.cmo c.cmo
কম্পাইল করা ফাইল তৈরি করে p.cmo এবং p.cmi একটি কম্পাইলেশন ইউনিটের বর্ণনা করে যার তিনটি আছে
সাব-মডিউল A, B এবং C, অবজেক্ট ফাইলের বিষয়বস্তুর সাথে সম্পর্কিত a.cmo,
b.cmo এবং c.cmo. এই বিষয়বস্তু PA, PB এবং PC হিসাবে উল্লেখ করা যেতে পারে
প্রোগ্রামের অবশিষ্টাংশ।
-পিপি হুকুম
কম্পাইলারকে প্রদত্ত কল করতে দিন হুকুম প্রতিটি উৎসের জন্য একটি প্রিপ্রসেসর হিসাবে
ফাইল এর আউটপুট হুকুম একটি মধ্যবর্তী ফাইলে পুনঃনির্দেশিত হয়, যা
সংকলিত কোন সংকলন ত্রুটি না থাকলে, মধ্যবর্তী ফাইল মুছে ফেলা হয়
পরে এই ফাইলটির নাম উৎস ফাইলের বেসনাম থেকে তৈরি করা হয়েছে
একটি ইন্টারফেস (.mli) ফাইলের জন্য এক্সটেনশন .ppi এবং একটি বাস্তবায়নের জন্য .ppo সহ
(.ml) ফাইল।
-পিপিএক্স হুকুম
পার্স করার পরে, প্রিপ্রসেসরের মাধ্যমে বিমূর্ত সিনট্যাক্স ট্রি পাইপ করুন হুকুম. দ্য
মডিউল Ast_mapper(3) একটি প্রিপ্রসেসরের বাহ্যিক ইন্টারফেস প্রয়োগ করে।
-অধ্যক্ষ
টাইপ-চেকিংয়ের সময় তথ্য পাথ চেক করুন, নিশ্চিত করুন যে সব ধরনের হয়
একটি প্রধান উপায়ে উদ্ভূত। লেবেলযুক্ত আর্গুমেন্ট এবং/অথবা বহুরূপী ব্যবহার করার সময়
পদ্ধতি, কম্পাইলারের ভবিষ্যত সংস্করণ হবে তা নিশ্চিত করার জন্য এই পতাকা প্রয়োজন
অভ্যন্তরীণ অ্যালগরিদম পরিবর্তন হলেও সঠিকভাবে ধরন অনুমান করতে সক্ষম। সব প্রোগ্রাম
মধ্যে গৃহীত -অধ্যক্ষ মোড সমতুল্যের সাথে ডিফল্ট মোডেও গৃহীত হয়
প্রকার, কিন্তু বিভিন্ন বাইনারি স্বাক্ষর, এবং এটি টাইপ চেকিংকে ধীর করে দিতে পারে; এখনো
সোর্স কোড প্রকাশ করার আগে এটি একবার ব্যবহার করা ভাল ধারণা।
- rectypes
টাইপ-চেকিংয়ের সময় নির্বিচারে পুনরাবৃত্তিমূলক প্রকারের অনুমতি দিন। ডিফল্টরূপে, শুধুমাত্র recursive
টাইপ যেখানে রিকারশন একটি অবজেক্ট টাইপের মধ্য দিয়ে যায় সমর্থিত। একবার খেয়াল করুন
আপনি এই পতাকা ব্যবহার করে একটি ইন্টারফেস তৈরি করেছেন, আপনাকে অবশ্যই এটি সবার জন্য আবার ব্যবহার করতে হবে
নির্ভরতা
-রানটাইম-ভেরিয়েন্ট প্রত্যয়
বিজ্ঞাপন প্রত্যয় রানটাইম লাইব্রেরির নামে যা প্রোগ্রামটি ব্যবহার করবে। যদি
OCaml বিকল্পের সাথে কনফিগার করা হয়েছিল -সহ-ডিবাগ-রানটাইম, এরপর d প্রত্যয় হয়
সমর্থিত এবং রানটাইমের একটি ডিবাগ সংস্করণ দেয়।
- নিরাপদ স্ট্রিং
প্রকারের মধ্যে বিচ্ছেদ কার্যকর করুন স্ট্রিং এবং বাইট, এইভাবে স্ট্রিং তৈরি করে পড়া-
কেবল. এটি OCaml এর ভবিষ্যতের সংস্করণে ডিফল্ট হয়ে যাবে।
- সংক্ষিপ্ত পথ
যখন একটি টাইপ বেশ কয়েকটি মডিউল-পাথের অধীনে দৃশ্যমান হয়, তখন সবচেয়ে ছোটটি ব্যবহার করুন
অনুমানকৃত ইন্টারফেস এবং ত্রুটি এবং সতর্কতা বার্তাগুলিতে টাইপের নাম মুদ্রণ করা।
- কঠোর-ক্রম
প্রতিটি সিকোয়েন্সের বাম দিকের অংশে টাইপ ইউনিট থাকতে বাধ্য করুন।
- থ্রেড
সিস্টেম "থ্রেড" এর সাথে একত্রে মাল্টিথ্রেডেড প্রোগ্রামগুলি কম্পাইল বা লিঙ্ক করুন
লাইব্রেরিতে বর্ণিত সার্জারির ওসিএএমএল ব্যবহারকারীর ম্যানুয়াল.
- অনিরাপদ
অ্যারে এবং স্ট্রিং অ্যাক্সেসের জন্য আবদ্ধ চেকিং বন্ধ করুন ( v.(i)এবংs[i]
গঠন করে)। সঙ্গে সংকলিত প্রোগ্রাম - অনিরাপদ তাই সামান্য দ্রুত, কিন্তু
unsafe: প্রোগ্রাম যদি এর বাইরে কোনো অ্যারে বা স্ট্রিং অ্যাক্সেস করে তাহলে যেকোনো কিছু ঘটতে পারে
এর সীমানা
-অনিরাপদ-স্ট্রিং
প্রকারগুলি চিহ্নিত করুন স্ট্রিং এবং বাইট, যার ফলে স্ট্রিং লিখনযোগ্য করে তোলে। কারণে
পশ্চাদগামী সামঞ্জস্যের, এই মুহূর্তের জন্য এটি ডিফল্ট সেটিং, কিন্তু এটি
OCaml এর ভবিষ্যতের সংস্করণে পরিবর্তন হবে।
-ব্যবহার-রানটাইম রানটাইম-নাম
একটি বাইটকোড এক্সিকিউটেবল ফাইল তৈরি করুন যা কাস্টম রানটাইমে কার্যকর করা যেতে পারে
পদ্ধতি রানটাইম-নাম, সঙ্গে আগে নির্মিত ocamlc -মেক-রানটাইম রানটাইম-নাম.
-v কম্পাইলারের সংস্করণ নম্বর এবং স্ট্যান্ডার্ড লাইব্রেরির অবস্থান মুদ্রণ করুন
ডিরেক্টরি, তারপর প্রস্থান করুন।
-ভারবস
এক্সিকিউট হওয়ার আগে সমস্ত বাহ্যিক কমান্ড প্রিন্ট করুন, বিশেষ করে এর আহ্বানে
সি কম্পাইলার এবং লিঙ্কার ইন - কাস্টম মোড. সি লাইব্রেরি সমস্যা ডিবাগ করতে দরকারী।
-ভিএমথ্রেড
VM-স্তরের থ্রেডগুলির সাথে একত্রে মাল্টিথ্রেডেড প্রোগ্রামগুলি কম্পাইল বা লিঙ্ক করুন
লাইব্রেরিতে বর্ণিত সার্জারির ওসিএএমএল ব্যবহারকারীর ম্যানুয়াল.
-vnum or -version
সংক্ষিপ্ত আকারে কম্পাইলারের সংস্করণ নম্বর প্রিন্ট করুন (যেমন "3.11.0"), তারপর প্রস্থান করুন।
-w সতর্কতা তালিকা
যুক্তি দ্বারা নির্দিষ্ট করা সতর্কতাগুলিকে সক্রিয়, অক্ষম বা মারাত্মক হিসাবে চিহ্নিত করুন৷
সতর্কতা তালিকা.
প্রতিটি সতর্কতা হতে পারে সক্ষম করা or অক্ষম, এবং প্রতিটি সতর্কতা হতে পারে মারাত্মকor অ মারাত্মক.
যদি একটি সতর্কতা অক্ষম করা হয়, তবে এটি প্রদর্শিত হয় না এবং কোনটিতে সংকলনকে প্রভাবিত করে না
উপায় (এমনকি যদি এটি মারাত্মক হয়)। একটি সতর্কতা সক্রিয় করা হলে, এটি দ্বারা সাধারণত প্রদর্শিত হয়
কম্পাইলার যখনই সোর্স কোডটি ট্রিগার করে। এটি সক্রিয় এবং মারাত্মক হলে,
কম্পাইলার এটি প্রদর্শন করার পরে একটি ত্রুটি সহ বন্ধ হয়ে যাবে।
সার্জারির সতর্কতা তালিকা আর্গুমেন্ট হল সতর্কীকরণ স্পেসিফায়ারের একটি ক্রম, কোন বিভাজক নেই
তাদের মধ্যে. একটি সতর্কতা স্পেসিফায়ার নিম্নলিখিতগুলির মধ্যে একটি:
+NUM সতর্কতা নম্বর সক্রিয় করুন NUM.
-NUM সতর্কতা নম্বর অক্ষম করুন NUM.
@NUM সক্রিয় করুন এবং মারাত্মক সতর্কতা নম্বর হিসাবে চিহ্নিত করুন NUM.
+সংখ্যা 1..সংখ্যা 2 এর মধ্যে সমস্ত সতর্কতা সক্রিয় করুন সংখ্যা 1 এবং সংখ্যা 2 (অন্তর্ভুক্ত).
-সংখ্যা 1..সংখ্যা 2 এর মধ্যে সমস্ত সতর্কতা অক্ষম করুন সংখ্যা 1 এবং সংখ্যা 2 (অন্তর্ভুক্ত).
@সংখ্যা 1..সংখ্যা 2 সক্রিয় করুন এবং এর মধ্যে সমস্ত সতর্কতা মারাত্মক হিসাবে চিহ্নিত করুন৷ সংখ্যা 1 এবং সংখ্যা 2
(অন্তর্ভুক্ত).
+চিঠি এর সাথে সম্পর্কিত সতর্কতার সেট সক্ষম করুন৷ চিঠি. চিঠিটি হতে পারে
বড় হাতের বা ছোট হাতের অক্ষর।
-চিঠি এর সাথে সম্পর্কিত সতর্কতার সেটটি নিষ্ক্রিয় করুন চিঠি. চিঠিটি হতে পারে
বড় হাতের বা ছোট হাতের অক্ষর।
@চিঠি সক্রিয় করুন এবং এর সাথে সম্পর্কিত সতর্কতার সেটটিকে মারাত্মক হিসাবে চিহ্নিত করুন৷ চিঠি.
অক্ষরটি বড় হাতের বা ছোট হাতের হতে পারে।
বড় হাতের অক্ষর এর সাথে সম্পর্কিত সতর্কতার সেট সক্ষম করুন৷ বড় হাতের অক্ষর.
ছোট হাতের অক্ষর এর সাথে সম্পর্কিত সতর্কতার সেটটি নিষ্ক্রিয় করুন ছোট হাতের অক্ষর.
সতর্কতা নম্বরগুলো নিম্নরূপ।
1 সন্দেহজনক-দেখানো শুরুর মন্তব্যের চিহ্ন।
2 সন্দেহজনক-দেখানো মন্তব্যের শেষ চিহ্ন।
3 অবহেলিত বৈশিষ্ট্য।
4 ভঙ্গুর প্যাটার্ন ম্যাচিং: ম্যাচিং যে সম্পূর্ণ থাকবে এমনকি যদি
মিলিত বৈকল্পিক প্রকারের একটিতে অতিরিক্ত কনস্ট্রাক্টর যোগ করা হয়।
5 আংশিকভাবে প্রয়োগ করা ফাংশন: অভিব্যক্তি যার ফলাফল ফাংশনের ধরন এবং হয়
উপেক্ষা করা
ফাংশন অ্যাপ্লিকেশনে 6 লেবেল বাদ দেওয়া হয়েছে।
7 পদ্ধতি "পদ্ধতি!" ব্যবহার না করে ওভাররাইড করা হয়েছে কীওয়ার্ড
8 আংশিক মিল: প্যাটার্ন-ম্যাচিংয়ে অনুপস্থিত কেস।
একটি রেকর্ড প্যাটার্নে 9টি অনুপস্থিত ক্ষেত্র।
10 টাইপ নেই এমন একটি সিকোয়েন্সের বাম দিকের এক্সপ্রেশন একক
(এবং এটি একটি ফাংশন নয়, সতর্কতা নম্বর 5 দেখুন)।
11 একটি প্যাটার্ন ম্যাচিং মধ্যে অপ্রয়োজনীয় কেস (অব্যবহৃত ম্যাচ ক্ষেত্রে)।
12 একটি প্যাটার্ন-মেলে অপ্রয়োজনীয় উপ-প্যাটার্ন।
13 একটি ইনস্ট্যান্স ভেরিয়েবলের ওভাররাইড।
14 একটি স্ট্রিং ধ্রুবক মধ্যে অবৈধ ব্যাকস্ল্যাশ অব্যাহতি.
15 ব্যক্তিগত পদ্ধতি সর্বজনীনভাবে অন্তর্নিহিতভাবে তৈরি করা হয়েছে।
16 অপরাগ্য ঐচ্ছিক যুক্তি।
17 অঘোষিত ভার্চুয়াল পদ্ধতি।
18 অ-প্রধান প্রকার।
19 প্রধানতা ছাড়া টাইপ করুন.
20 অব্যবহৃত ফাংশন আর্গুমেন্ট।
21 নন-রিটার্নিং স্টেটমেন্ট।
22 প্রিপ্রসেসর সতর্কতা।
23 অকেজো রেকর্ড সঙ্গে দফা।
24 খারাপ মডিউল নাম: উৎস ফাইলের নাম একটি বৈধ OCaml মডিউল নাম নয়।
25 সমস্ত ধারা সুরক্ষিত সঙ্গে প্যাটার্ন-ম্যাচিং.
26 সন্দেহজনক অব্যবহৃত চলক: অব্যবহৃত চলক যার সাথে আবদ্ধ দিন or as, এবং
একটি আন্ডারস্কোর (_) অক্ষর দিয়ে শুরু হয় না।
27 নিরীহ অব্যবহৃত চলক: অব্যবহৃত চলক যা আবদ্ধ নয় দিন না as,
এবং একটি আন্ডারস্কোর (_) অক্ষর দিয়ে শুরু হয় না।
28 একটি প্যাটার্নে একটি ধ্রুবক কনস্ট্রাক্টর রয়েছে যা আন্ডারস্কোরে প্রয়োগ করা হয় (_)
প্যাটার্ন।
29 একটি স্ট্রিং ধ্রুবকের মধ্যে একটি নন-এস্কেপড এন্ড-অফ-লাইন পাওয়া গেছে। এটি হতে পারে
ইউনিক্স এবং উইন্ডোজের মধ্যে বহনযোগ্যতা সমস্যা।
30 একই নামের দুটি লেবেল বা কনস্ট্রাক্টর দুটি পারস্পরিকভাবে সংজ্ঞায়িত করা হয়
পুনরাবৃত্তিমূলক প্রকার।
31 একটি মডিউল একই এক্সিকিউটেবলে দুবার লিঙ্ক করা হয়।
32 অব্যবহৃত মান ঘোষণা।
33 অব্যবহৃত খোলা বিবৃতি.
34 অব্যবহৃত টাইপ ঘোষণা।
35 লুপের জন্য অব্যবহৃত সূচক।
36 অব্যবহৃত পূর্বপুরুষ পরিবর্তনশীল।
37 অব্যবহৃত কনস্ট্রাক্টর।
38 অব্যবহৃত এক্সটেনশন কনস্ট্রাক্টর।
39 অব্যবহৃত rec পতাকা.
40 কনস্ট্রাক্টর বা লেবেলের নাম সুযোগের বাইরে ব্যবহার করা হয়েছে।
41 অস্পষ্ট কনস্ট্রাক্টর বা লেবেল নাম।
42 দ্ব্যর্থহীন কনস্ট্রাক্টর বা লেবেলের নাম।
43 অপশনাল লেবেল ঐচ্ছিক হিসাবে প্রয়োগ করা হয়েছে।
44 খোলা বিবৃতি একটি ইতিমধ্যে সংজ্ঞায়িত শনাক্তকারীকে ছায়া দেয়।
45 খোলা বিবৃতি একটি ইতিমধ্যে সংজ্ঞায়িত লেবেল বা কন্সট্রাক্টর ছায়া দেয়।
46 পরিবেশ পরিবর্তনশীল ত্রুটি.
47 অবৈধ অ্যাট্রিবিউট পেলোড।
48 ঐচ্ছিক আর্গুমেন্টের অন্তর্নিহিত বর্জন।
49 অনুপস্থিত cmi ফাইল যখন মডিউল উপনাম খুঁজছেন.
50 অপ্রত্যাশিত ডকুমেন্টেশন মন্তব্য.
অক্ষরগুলি নিম্নলিখিত সতর্কতার সেটগুলির জন্য দাঁড়িয়েছে৷ উল্লেখ করা হয়নি কোনো চিঠি
এখানে খালি সেটের সাথে মিল রয়েছে।
A সমস্ত সতর্কতা
C 1, 2
D 3
E 4
F 5
K 32, 33, 34, 35, 36, 37, 38, 39
L 6
M 7
P 8
R 9
S 10
U 11, 12
V 13
X 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 30
Y 26
Z 27
ডিফল্ট সেটিং হয় -w +a-4-6-7-9-27-29-32..39-41-42-44-45-48-50। মনে রাখবেন যে
সতর্কবার্তা 5 এবং 10 টাইপের ইন্টারনালের উপর নির্ভর করে সবসময় ট্রিগার করা হয় না
পরীক্ষক
-সতর্ক-ত্রুটি সতর্কতা তালিকা
আর্গুমেন্টে উল্লেখ করা সতর্কতাগুলোকে ত্রুটি হিসেবে চিহ্নিত করুন সতর্কতা তালিকা. কম্পাইলার
এই সতর্কতাগুলির মধ্যে একটি নির্গত হলে একটি ত্রুটির সাথে থামবে৷ দ্য সতর্কতা তালিকা
জন্য হিসাবে একই অর্থ আছে -w বিকল্প: ক + চিহ্ন (বা একটি বড় হাতের অক্ষর) চিহ্ন
প্রাণঘাতী হিসাবে সংশ্লিষ্ট সতর্কবাণী, ক - চিহ্ন (বা একটি ছোট হাতের অক্ষর) তাদের ঘুরিয়ে দেয়
অ-মারাত্মক সতর্কতায় ফিরে যান, এবং ক @ চিহ্ন উভয় সক্রিয় করে এবং মারাত্মক হিসাবে চিহ্নিত করে
সংশ্লিষ্ট সতর্কবার্তা।
দ্রষ্টব্য: এটি ব্যবহার করার জন্য সুপারিশ করা হয় না -সতর্ক-ত্রুটি উত্পাদন কোড বিকল্প,
কারণ এটি প্রায় অবশ্যই পরবর্তী সংস্করণগুলির সাথে আপনার প্রোগ্রাম কম্পাইল করা প্রতিরোধ করবে
OCaml-এর যখন তারা নতুন সতর্কবার্তা যোগ করে বা বিদ্যমান সতর্কবার্তা পরিবর্তন করে।
ডিফল্ট সেটিং হয় -সতর্ক-ত্রুটি -a (সমস্ত সতর্কতা অ-মারাত্মক)।
-সতর্ক-সাহায্য
সমস্ত উপলব্ধ সতর্কতা নম্বরের বিবরণ দেখান।
-কোথায় স্ট্যান্ডার্ড লাইব্রেরির অবস্থান প্রিন্ট করুন, তারপর প্রস্থান করুন।
- ফাইল প্রক্রিয়া ফাইল একটি ফাইলের নাম হিসাবে, এমনকি যদি এটি একটি ড্যাশ (-) অক্ষর দিয়ে শুরু হয়।
-হেল্প or --help
একটি সংক্ষিপ্ত ব্যবহারের সারাংশ প্রদর্শন করুন এবং প্রস্থান করুন।
onworks.net পরিষেবা ব্যবহার করে অনলাইনে ocamlc ব্যবহার করুন