CIL(Linker) CIL(Linker)
نام (NAME)
monolinker - لینکر کدهای CIL در مونو (Mono)
خلاصه دستور (SYNOPSIS)
monolinker [-o output_directory] [-l i18n_assemblies] [-c skip | copy |
link] -x descriptor | -a assembly | -i info_file ...
توضیحات (DESCRIPTION)
ابزار monolinker یک پیونددهنده (لینکر) برای بایتکدهای CIL است.
لینکر ابزاری است که میتوان برای انتشار تنها حداقل مجموعه توابع لازم جهت
اجرای مجموعهای از برنامهها (در برابر انتشار کامل کتابخانهها) از آن بهره
برد.
این ابزار کدهای میانی (CIL) تولیدشده توسط هر کامپایلری که سکوی Mono را
هدف قرار داده باشد (نظیر mcs، gmcs، vbnc، booc و غیره) را تحلیل میکند.
این برنامه تمام کدهای ورودی را بررسی کرده و کلاسها و متدهای بلااستفاده
را با عملیات علامتگذاری و جاروب (mark and sweep) حذف مینماید.
خروجی حاصل از monolinker را میتوان بعداً با ابزار mkbundle پردازش کرد تا
فایلهای اجرایی نیتیو، کمحجم و خودکفا تولید شوند.
این ابزار نباید با Assembly Linker (al) که فایلهای اسمبلی را از
مانیفستها، ماژولها و منابع میسازد اشتباه گرفته شود.
گزینهها (OPTIONS)
-d search_directory
تعیین دایرکتوری مورد نظر جهت جستجوی فایلهای اسمبلی توسط لینکر.
-o output_directory
تعیین دایرکتوری خروجی (پیشفرض: 'output').
چنانچه دایرکتوری `.` را تعیین میکنید، اطمینان حاصل نمایید که بر
روی اسمبلیهای حیاتی موجود بازنویسی انجام نشود.
-b true | false
تعیین تولید یا عدم تولید نمادهای اشکالزدایی (پیشفرض: false).
-g true | false
تعیین اینکه آیا برای هر ماژول لینکشده یک guid جدید تولید شود یا
از مقدار موجود استفاده گردد (پیشفرض: true).
-l i18n_assemblies
تعیین نحوه برخورد با اسمبلیهای منطقهای و بینالمللیسازی (i18n):
مونو شامل چند فایل اسمبلی است که حاوی اجزای خاص مناطق مختلف
هستند:
I18N.CJK.dll
I18N.MidEast.dll
I18N.Other.dll
I18N.Rare.dll
I18N.West.dll
به طور پیشفرض، تمامی آنها در دایرکتوری خروجی کپی میشوند، اما
میتوانید با استفاده از این گزینه موارد مورد نیاز را مشخص کنید:
none، all، cjk، mideast، other، rare یا west (میتوان مقادیر را
با کاما ترکیب نمود).
-c action
تعیین عملیاتی که باید بر روی اسمبلیهای هسته (core assemblies)
اعمال شود.
اسمبلیهای هسته به کتابخانه کلاس پایه تعلق دارند، مانند
mscorlib.dll، System.dll یا System.Windows.Forms.dll.
سه عملیات قابل اعمال هستند:
skip نادیده گرفتن آنها توسط لینکر و عدم انجام هرگونه عملیات.
copy کپی کردن آنها در دایرکتوری خروجی.
link اعمال فرآیند پیوند و کاهش حجم آنها.
-p action assembly
تعیین عملیات به ازای هر اسمبلی به صورت جداگانه.
-x descriptor
استفاده از یک فایل توصیفگر XML به عنوان مبدأ برای لینکر.
نمونهای از قالب توصیفگر XML:
در این مثال، لینکر انواع Foo، Bar، Baz و Gazonk را پیوند خواهد
داد.
-a assemblies
استفاده از یک اسمبلی به عنوان منبع لینکر. لینکر تمام متدهای آن
را پیمایش میکند تا تنها اجزای لازم را تولید نماید.
-i info_file
استفاده از یک فایل xml از نوع .info به عنوان ورودی (تولیدشده
توسط mono-api-info).
-s [StepBefore:]StepFullName,StepAssembly[:StepAfter]
اجرای گامهای سفارشی در خط لوله لینکر.
نمونه:
using System;
using Mono.Linker;
using Mono.Linker.Steps;
namespace Foo {
public class FooStep : IStep {
public void Process (LinkContext context)
{
foreach (IStep step in context.Pipeline.GetSteps ()) {
Console.WriteLine (step.GetType ().Name);
}
}
}
}
افزودن FooStep در انتهای خط لوله:
monolinker -s Foo.FooStep,Foo -a program.exe
افزودن FooStep پس از MarkStep:
monolinker -s MarkStep:Foo.FooStep,Foo -a program.exe
-m CustomParam ParamValue
تعیین پارامتر برای یک گام سفارشی.
حق نشر (COPYRIGHT)
حق نشر (C) 2007 متعلق به Novell, Inc ()
اشکالات (BUGS)
گزارش اشکالات در نشانی زیر قابل ثبت است:
فهرستهای پستی (MAILING LISTS)
فهرستهای پستی در نشانی زیر موجود است:
پایگاه وب (WEB SITE)
نویسندگان (AUTHORS)
این لینکر توسط Jb Evain نوشته شده و بخشی از آن توسط Google Summer of
Code تأمین مالی شده است.
مجوز (LICENSE)
این ابزار تحت مجوز MIT/X11 منتشر شده است.
همچنین ببینید (SEE ALSO)
al(1), mkbundle(1), mono(1), mcs(1)
monolinker CIL(Linker)