| 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.
سه عملیات قابل اعمال هستند:
- -p action assembly
- تعیین عملیات به ازای هر اسمبلی به صورت جداگانه.
- -x descriptor
- استفاده از
یک فایل
توصیفگر XML
به عنوان
مبدأ برای
لینکر.
نمونهای از قالب توصیفگر XML:
<linker> <assembly fullname="Library"> <type fullname="Foo" /> <type fullname="Bar" preserve="nothing" required="false" /> <type fullname="Baz" preserve="fields" required="false" /> <type fullname="Gazonk"> <method signature="System.Void .ctor(System.String)" /> <field signature="System.String _blah" /> <field name="someFieldName" /> </type> </assembly> </linker>
در این مثال، لینکر انواع 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 (http://www.novell.com)
اشکالات (BUGS)
گزارش اشکالات در نشانی زیر قابل ثبت است:
فهرستهای پستی (MAILING LISTS)
فهرستهای پستی در نشانی زیر موجود است:
پایگاه وب (WEB SITE)
http://www.mono-project.com/docs/tools+libraries/tools/linker
نویسندگان (AUTHORS)
این لینکر توسط Jb Evain نوشته شده و بخشی از آن توسط Google Summer of Code تأمین مالی شده است.
مجوز (LICENSE)
این ابزار تحت مجوز MIT/X11 منتشر شده است.
همچنین ببینید (SEE ALSO)
| monolinker |