| erlc(1) | Erlang Module Definition | erlc(1) |
نام (NAME)
erlc - کامپایلر
توضیحات (DESCRIPTION)
برنامهٔ erlc روشی یکپارچه برای اجرای تمامی کامپایلرها در سیستم Erlang فراهم میکند. بسته به پسوند هر فایل ورودی، erlc کامپایلر مناسب را فراخوانی میکند. صرفنظر از اینکه کدام کامپایلر استفاده میشود، پرچمهای یکسانی برای ارائهٔ پارامترها، مانند مسیرهای include و دایرکتوری خروجی، به کار میروند.
دایرکتوری کاری فعلی، "."، هنگام اجرای کامپایلر در مسیر کد (code path) گنجانده نمیشود. این امر برای جلوگیری از بارگذاری فایلهای Beam از دایرکتوری کاری فعلی است که ممکن است بهطور بالقوه با کامپایلر یا سیستم Erlang/OTP مورد استفادهٔ کامپایلر تداخل داشته باشند.
erlc flags file1.ext file2.ext...
یک یا چند فایل را کامپایل میکند. فایلها باید دارای پسوند باشند، برای نمونه .erl برای کدهای منبع Erlang، یا .yrl برای کدهای منبع Yecc. برنامهٔ erlc از پسوند فایل برای فراخوانی کامپایلر صحیح استفاده میکند.
پرچمهای عموماً کاربردی (Generally Useful Flags)
پرچمهای زیر پشتیبانی میشوند:
-I <Directory>
-o <Directory>
-D<Name>
-D<Name>=<Value>
-Werror
-W<Number>
-W
-v
-b <Output_type>
-no-server
-server
-enable-feature <Feature>
-disable-feature <feature>
-list-features
-describe-feature <feature>
-M
-MMD
-MF <Makefile>
-MD
-MT <Target>
-MQ <Target>
-MP
-MG
--
+<Term>
erlc +export_all file.erl
بسته به پلتفرم، در صورتی که خود پوسته کاراکترهای خاصی را تفسیر کند، ممکن است لازم باشد مقدار داخل کوتیشن قرار گیرد. در Unix، ترمهای حاوی تاپلها و لیستها باید درون کوتیشن قرار گیرند. ترمهای حاوی فاصله باید در تمام پلتفرمها درون کوتیشن قرار گیرند.
پرچمهای ویژه (Special Flags)
پرچمهای زیر در شرایط خاص، مانند بازسازی سیستم OTP مفید هستند:
-pa <Directory>
-pz <Directory>
کامپایلرهای پشتیبانیشده (Supported Compilers)
کامپایلرهای زیر پشتیبانی میشوند:
.erl
گزینههای -P، -E و -S معادل +'P'، +'E' و +'S' هستند، با این تفاوت که نیازی به قرار دادن کوتیشن تکی جهت محافظت از آنها در برابر پوسته نیست.
گزینههای پشتیبانیشده: -I، -o، -D، -v، -W، -b.
.S
گزینههای پشتیبانیشده: مشابه .erl.
.core
گزینههای پشتیبانیشده: مشابه .erl.
.abstr
گزینههای پشتیبانیشده: مشابه .erl.
.yrl
از گزینه -I به همراه نام یک فایل برای استفاده از آن فایل بهعنوان فایل prologue سفارشی استفاده کنید (گزینه includefile).
گزینههای پشتیبانیشده: -o، -v، -I، -W.
.mib
گزینههای پشتیبانیشده: -I، -o، -W.
.bin
گزینههای پشتیبانیشده: -o، -v.
.rel
از گزینه -I برای مشخص کردن دایرکتوریهایی که باید جهت یافتن فایلهای برنامه جستجو شوند استفاده کنید (معادل path در فهرست گزینههای systools:make_script/2).
گزینه پشتیبانیشده: -o.
.asn1
گزینههای پشتیبانیشده: -I، -o، -b، -W.
.idl
گزینههای پشتیبانیشده: -I، -o.
سرور کامپایل میتواند با اجتناب از راهاندازی یک سیستم Erlang برای کامپایل هر فایل، بهطور بالقوه به ساخت پروژههای چندفایلی سرعت بخشد. این که آیا سرعت ساخت افزایش مییابد یا خیر، به ماهیت پروژه و ماشین ساخت بستگی دارد.
بهطور پیشفرض، از سرور کامپایل استفاده نمیشود. میتوان آن را با دادن گزینهٔ -server به erlc یا با تنظیم متغیر محیطی ERLC_USE_SERVER روی yes یا true فعال کرد.
هنگامی که سرور کامپایل فعال باشد، چنانچه سرور راهاندازی شده باشد erlc بهطور خودکار از آن استفاده میکند و اگر هنوز راهاندازی نشده باشد، آن را راهاندازی خواهد کرد. سرور پس از این که برای چند ثانیه بیکار بماند، به کار خود پایان میدهد.
erlc و سرور کامپایل با استفاده از توزیع Erlang ارتباط برقرار میکنند. سرور کامپایل به عنوان یک گره مخفی (hidden node)، با نامی که شامل کاربر جاری است راهاندازی میشود. بنابراین، هر کاربر روی رایانه سرور کامپایل اختصاصی خود را دارد.
استفاده از سرور کامپایل همیشه ساخت را سرعت نمیبخشد، زیرا گاهی اوقات برای تضمین صحت عملکرد، سرور کامپایل باید مجدداً راهاندازی شود. در ادامه چند نمونه از شرایطی که موجب راهاندازی مجدد اجباری میشوند آورده شده است:
متغیرهای محیطی (Environment Variables)
ERLC_EMULATOR
ERLC_USE_SERVER
ERLC_SERVER_ID
erl(1), compile, yecc, snmp
| erts 17.0.6 | Ericsson AB |