انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

i686-linux-gnu-ld.bfd - آنلاین در ابر

i686-linux-gnu-ld.bfd را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور i686-linux-gnu-ld.bfd است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


ld - پیوند دهنده گنو

خلاصه


ld [گزینه های] مبهم کردن ...

شرح


ld تعدادی از فایل های شی و بایگانی را ترکیب می کند، داده های آنها را جابجا می کند
و ارجاعات نماد را گره می زند. معمولا آخرین مرحله در تدوین a
برنامه اجرا میشه ld.

ld فایل‌های زبان فرمان لینکر را می‌پذیرد که در یک ابرمجموعه نوشته شده‌اند
دستور زبان ویرایشگر پیوند AT&T، برای ارائه صریح و
کنترل کامل بر فرآیند پیوند.

این صفحه مرد زبان فرمان را توصیف نمی کند. را ببینید ld ورود
در "اطلاعات" برای جزئیات کامل در مورد زبان دستور و جنبه های دیگر
پیوند دهنده گنو

این نسخه از ld از کتابخانه های عمومی BFD برای کار استفاده می کند
فایل های شی این اجازه می دهد ld برای خواندن، ترکیب و نوشتن فایل های شی
در بسیاری از فرمت های مختلف --- برای مثال، COFF یا "a.out". ناهمسان
قالب‌ها ممکن است برای تولید هر نوع شی موجود به یکدیگر مرتبط شوند
فایل.

جدا از انعطاف‌پذیری، پیوند گنو مفیدتر از سایرین است
پیوند دهنده ها در ارائه اطلاعات تشخیصی بسیاری از پیوند دهنده ها رها می شوند
اجرا بلافاصله پس از برخورد با یک خطا؛ هر زمانی که ممکن بود، ld
به اجرا ادامه می دهد و به شما امکان می دهد سایر خطاها (یا در برخی از آنها) را شناسایی کنید
موارد، برای دریافت فایل خروجی با وجود خطا).

پیوند دهنده گنو ld برای پوشش طیف وسیعی از موقعیت ها و به منظور
تا حد امکان با سایر پیوند دهنده ها سازگار باشد. در نتیجه شما دارید
انتخاب های زیادی برای کنترل رفتارش.

OPTIONS


پیوند دهنده تعداد زیادی از گزینه های خط فرمان را پشتیبانی می کند، اما در واقع
در عمل تعداد کمی از آنها در هر زمینه خاصی استفاده می شوند. برای مثال،
استفاده مکرر از ld این است که فایل های شی استاندارد یونیکس را روی یک پیوند دهید
سیستم یونیکس استاندارد و پشتیبانی شده در چنین سیستمی، برای پیوند دادن یک فایل
"hello.o":

من انجام میدم /lib/crt0.o hello.o -lc

این می گوید ld برای تولید فایلی به نام تولید در نتیجه پیوند دادن
فایل "/lib/crt0.o" با "hello.o" و کتابخانه "libc.a" که
از دایرکتوری های جستجوی استاندارد می آید. (به بحث مراجعه کنید
la -l گزینه زیر.)

برخی از گزینه های خط فرمان به ld ممکن است در هر نقطه مشخص شود
خط فرمان با این حال، گزینه هایی که به فایل ها اشاره می کنند، مانند -l or
-T، باعث می شود فایل در نقطه ای که گزینه ظاهر می شود خوانده شود
در خط فرمان، نسبت به فایل های شی و فایل های دیگر
گزینه ها. تکرار گزینه‌های غیر فایلی با آرگومان متفاوت خواهد بود
یا هیچ اثر دیگری ندارند، یا رویاروهای قبلی را نادیده می گیرند (آنها
در سمت چپ در خط فرمان) آن گزینه. گزینه هایی که
ممکن است بیش از یک بار به طور معناداری مشخص شود در
توضیحات زیر

آرگومان های غیر گزینه ای فایل های شی یا آرشیوهایی هستند که باید باشند
مرتبط با هم. آنها ممکن است به دنبال، مقدم، یا با آنها مخلوط شوند
گزینه های خط فرمان، با این تفاوت که آرگومان فایل شی ممکن است نباشد
بین گزینه و آرگومان آن قرار می گیرد.

معمولا لینکر با حداقل یک فایل شیء فراخوانی می شود، اما شما
می تواند اشکال دیگری از فایل های ورودی باینری را با استفاده از آن مشخص کند -l, -R، و
زبان دستور اسکریپت اگر نه فایل های ورودی باینری در همه هستند
مشخص شده، پیوند دهنده هیچ خروجی تولید نمی کند و آن را صادر می کند
پیام نه ورودی فایل ها.

اگر پیوند دهنده نتواند فرمت یک فایل شی را تشخیص دهد، این کار را می کند
فرض کنید که یک اسکریپت پیوند دهنده است. اسکریپتی که به این شکل مشخص شده است
اسکریپت پیوند دهنده اصلی مورد استفاده برای پیوند را تقویت می کند (یا به صورت پیش فرض
اسکریپت پیوند دهنده یا اسکریپت مشخص شده با استفاده از -T). این ویژگی اجازه می دهد
پیوند دهنده برای پیوند در برابر فایلی که به نظر می رسد یک شی یا یک است
آرشیو، اما در واقع صرفاً برخی از مقادیر یا کاربردهای نماد را تعریف می کند
"INPUT" یا "GROUP" برای بارگیری اشیاء دیگر. مشخص کردن یک اسکریپت در این
way صرفاً اسکریپت پیوند دهنده اصلی را با دستورات اضافی تقویت می کند
بعد از اسکریپت اصلی قرار می گیرد. استفاده کنید -T گزینه جایگزینی پیش فرض
اسکریپت لینکر به طور کامل، اما به اثر دستور "INSERT" توجه کنید.

برای گزینه هایی که نام آنها یک حرف است، آرگومان های گزینه باید
یا حرف گزینه را بدون فضای خالی دنبال کنید یا باشید
بلافاصله پس از گزینه ای که به صورت آرگومان های جداگانه ارائه می شود
آنها را می طلبد.

برای گزینه هایی که نام آنها چند حرف است، یک خط تیره یا دو
می تواند قبل از نام گزینه قرار گیرد. مثلا، ردیابی - نماد و
-- ردیابی - نماد معادل هستند. توجه --- یک استثنا برای این وجود دارد
قانون. گزینه های چند حرفی که با حروف کوچک "o" شروع می شوند
فقط با دو خط تیره قبل از آن. این برای کاهش سردرگمی با
-o گزینه. به عنوان مثال -جادویی نام فایل خروجی را تنظیم می کند شعبده بازي
در حالیکه -- جادویی پرچم NMAGIC را روی خروجی تنظیم می کند.

آرگومان های گزینه های چندحرفی باید یا از آن جدا شوند
نام گزینه با علامت مساوی، یا به عنوان آرگومان های جداگانه داده شود
بلافاصله پس از گزینه ای که به آنها نیاز دارد. مثلا،
-- ردیابی - نماد فو و --trace-symbol=foo معادل هستند. منحصر بفرد
اختصارات نام گزینه های چند حرفی پذیرفته می شود.

توجه داشته باشید---اگر پیوند دهنده به طور غیر مستقیم از طریق درایور کامپایلر فراخوانی شود
(به عنوان مثال gcc) سپس تمام گزینه های خط فرمان لینکر باید پیشوند شوند
by -Wl، (یا هر چیزی که برای درایور کامپایلر خاص مناسب است)
مثل این:

gcc -Wl,--start-group foo.o bar.o -Wl,--end-group

این مهم است، زیرا در غیر این صورت برنامه درایور کامپایلر ممکن است
بی‌صدا گزینه‌های پیوند دهنده را رها کنید، در نتیجه پیوند بدی ایجاد می‌شود. گیجی
همچنین ممکن است هنگام عبور گزینه هایی که به مقادیر نیاز دارند از a ایجاد شود
درایور، زیرا استفاده از فاصله بین گزینه و آرگومان به عنوان a عمل می کند
جداکننده، و باعث می شود که درایور فقط گزینه را به لینک دهنده منتقل کند
و استدلال به کامپایلر. در این مورد، استفاده از آن ساده ترین است
فرم های به هم پیوسته گزینه های تک حرفی و چند حرفی مانند:

gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map

در اینجا جدولی از سوئیچ های خط فرمان عمومی پذیرفته شده توسط
پیوند دهنده گنو:

@پرونده
گزینه های خط فرمان را از پرونده. گزینه های خوانده شده درج می شوند
به جای اصلی @پرونده گزینه. اگر پرونده وجود ندارد، یا
قابل خواندن نیست، سپس با این گزینه به معنای واقعی کلمه رفتار می شود، و نه
حذف شده.

گزینه ها در پرونده با فضای خالی از هم جدا می شوند. یک فضای خالی
کاراکتر ممکن است با احاطه کردن کل در یک گزینه گنجانده شود
گزینه در گیومه های تک یا دوتایی. هر شخصیت (از جمله
یک بک اسلش) ممکن است با پیشوند کردن کاراکتر to be اضافه شود
همراه با اسلش. در پرونده ممکن است خود حاوی اضافی باشد
@پرونده گزینه ها؛ چنین گزینه هایی به صورت بازگشتی پردازش می شوند.

-a کلمه کلیدی
این گزینه برای سازگاری HP/UX پشتیبانی می شود. در کلمه کلیدی
آرگومان باید یکی از رشته ها باشد بایگانی, به اشتراک گذاشته شده، یا به طور پیش فرض.
-بایگانی از نظر عملکردی معادل است -Bstatic، و دو تای دیگر
کلمات کلیدی از نظر عملکردی معادل هستند -بی دینامیک. این گزینه ممکن است
هر چند بار استفاده شود

--حسابرسی AUDITLIB
می افزاید: AUDITLIB به ورودی "DT_AUDIT" بخش پویا.
AUDITLIB از نظر وجود بررسی نمی شود و از آن استفاده نمی کند
DT_SONAME در کتابخانه مشخص شده است. اگر چندین بار مشخص شود
"DT_AUDIT" حاوی یک لیست جدا شده از دو نقطه از رابط های حسابرسی است
برای استفاده. اگر پیوند دهنده یک شی با ورودی حسابرسی در حالی که
با جستجوی کتابخانه های مشترک، یک مورد مربوطه را اضافه می کند
ورودی "DT_DEPAUDIT" در فایل خروجی. این گزینه فقط
معنی دار در پلتفرم های ELF که از رابط rtld-audit پشتیبانی می کنند.

-A معماری
--معماری=معماری
در نسخه فعلی از ld، این گزینه فقط برای
خانواده معماری اینتل 960. در آن ld پیکربندی،
معماری آرگومان معماری خاص در را مشخص می کند
خانواده 960، برخی از پادمان ها را فعال می کند و آرشیو را اصلاح می کند.
مسیر جستجوی کتابخانه

انتشارات آینده از ld ممکن است از عملکرد مشابه برای سایرین پشتیبانی کند
خانواده های معماری

-b فرمت ورودی
--فرمت=فرمت ورودی
ld ممکن است برای پشتیبانی از بیش از یک نوع فایل شی پیکربندی شود.
اگر شما ld به این صورت پیکربندی شده است، می توانید از -b گزینه ای برای
فرمت باینری را برای فایل‌های شی ورودی که به دنبال آن هستند، مشخص کنید
گزینه در خط فرمان حتی وقتی که ld برای پشتیبانی پیکربندی شده است
فرمت‌های شی جایگزین، معمولاً نیازی به تعیین آن ندارید،
as ld باید به گونه ای پیکربندی شود که به عنوان یک فرمت ورودی پیش فرض انتظار می رود
معمول ترین فرمت در هر دستگاه فرمت ورودی یک رشته متن است،
نام یک قالب خاص که توسط کتابخانه های BFD پشتیبانی می شود.
(می توانید فرمت های باینری موجود را با آن فهرست کنید ابجدمپ -i.)

ممکن است بخواهید از این گزینه استفاده کنید اگر فایل ها را با یک پیوند می دهید
فرمت باینری غیر معمول همچنین می توانید استفاده کنید -b برای تغییر فرمت ها
به صراحت (هنگام پیوند دادن فایل های شی با فرمت های مختلف)، توسط
شامل -b فرمت ورودی قبل از هر گروه از فایل های شی در a
فرمت خاص

فرمت پیش فرض از متغیر محیطی گرفته شده است
"GNUTARGET".

همچنین می توانید قالب ورودی را از یک اسکریپت با استفاده از
دستور "TARGET"؛

-c فایل دستوری MRI
--mri-script=فایل دستوری MRI
برای سازگاری با لینکرهای تولید شده توسط MRI، ld فیلمنامه را می پذیرد
فایل های نوشته شده در یک زبان دستوری جایگزین و محدود،
در بخش MRI Compatible Script Files از GNU ld توضیح داده شده است
مستندات. فایل های اسکریپت MRI را با گزینه معرفی کنید -c؛ استفاده کنید
la -T گزینه ای برای اجرای اسکریپت های پیوند دهنده نوشته شده در همه منظور
ld زبان برنامه نویسی. اگر MRI-cmdfile وجود ندارد، ld جستجو میکند
آن را در دایرکتوری های مشخص شده توسط هر کدام -L گزینه.

-d
دی سی
-درد این سه گزینه معادل هستند. فرم های متعدد پشتیبانی می شوند
برای سازگاری با سایر لینکرها آنها فضا را به مشترک اختصاص می دهند
نمادها حتی اگر یک فایل خروجی قابل جابجایی مشخص شده باشد (با -r).
فرمان اسکریپت "FORCE_COMMON_ALLOCATION" همین اثر را دارد.

- بازپرداخت AUDITLIB
-P AUDITLIB
می افزاید: AUDITLIB به ورودی "DT_DEPAUDIT" بخش پویا.
AUDITLIB از نظر وجود بررسی نمی شود و از آن استفاده نمی کند
DT_SONAME در کتابخانه مشخص شده است. اگر چندین بار مشخص شود
"DT_DEPAUDIT" حاوی فهرستی از ممیزی جدا از دو نقطه است
رابط های مورد استفاده این گزینه فقط در پلتفرم های ELF معنی دارد
پشتیبانی از رابط rtld-audit. گزینه -P ارائه شده است
سازگاری سولاریس

-e ورود
-- ورود =ورود
استفاده کنید ورود به عنوان نماد صریح برای شروع اجرای شما
برنامه، به جای نقطه ورودی پیش فرض. اگر وجود ندارد
نماد به نام ورود، پیوند دهنده سعی می کند تجزیه کند ورود به عنوان یک عدد،
و از آن به عنوان آدرس ورودی استفاده کنید (عدد تفسیر خواهد شد
در پایه 10؛ می توانید از یک پیشرو استفاده کنید 0x برای پایه 16 یا پیشرو 0
برای پایه 8).

--exclude-libs لوب,لوب، ...
فهرستی از کتابخانه های آرشیو را مشخص می کند که نمادها نباید از آنها استفاده کنند
به صورت خودکار صادر شود نام کتابخانه ممکن است توسط
کاما یا دو نقطه تعیین "--exclude-libs ALL" نمادها را مستثنی می کند
در تمام کتابخانه های آرشیو از صادرات خودکار. این گزینه است
فقط برای پورت هدفمند i386 PE لینکر و برای
پورت های هدف ELF برای i386 PE، نمادها به صراحت در a فهرست شده اند
فایل .def بدون توجه به این گزینه همچنان صادر می شود. برای ELF
پورت های هدفمند، نمادهایی که تحت تأثیر این گزینه قرار می گیرند به عنوان در نظر گرفته می شوند
پنهان

--exclude-modules-for-implib واحد,واحد، ...
فهرستی از فایل‌های شی یا اعضای بایگانی را مشخص می‌کند که از آن‌ها
نمادها نباید به طور خودکار صادر شوند، اما باید صادر شوند
به صورت عمده در کتابخانه واردات در حال تولید کپی شد
ارتباط دادن. نام ماژول ها ممکن است با کاما یا دو نقطه مشخص شود
باید دقیقاً با نام فایل های استفاده شده مطابقت داشته باشد ld برای باز کردن فایل ها؛ برای
اعضای بایگانی، این فقط نام عضو است، اما برای شی
فایل هایی که نام لیست شده باید شامل هر مسیری باشد و دقیقاً مطابقت داشته باشد
برای تعیین فایل ورودی در خط فرمان پیوند دهنده استفاده می شود. این
گزینه فقط برای پورت هدفمند PE i386 موجود است
پیوند دهنده نمادهایی که به صراحت در یک فایل .def فهرست شده اند، همچنان باقی هستند
بدون توجه به این گزینه صادر می شود.

-E
-- صادرات - پویا
--بدون صادرات پویا
هنگام ایجاد یک فایل اجرایی با پیوند پویا، با استفاده از -E انتخاب
یا -- صادرات - پویا گزینه باعث می شود که پیوند دهنده تمام نمادها را اضافه کند
به جدول نمادهای پویا جدول نماد پویا مجموعه است
نمادهایی که در زمان اجرا از اشیاء پویا قابل مشاهده هستند.

اگر از هیچ یک از این گزینه ها استفاده نمی کنید (یا از
--بدون صادرات پویا گزینه برای بازیابی رفتار پیش فرض)،
جدول نمادهای پویا معمولاً فقط شامل آن نمادهایی است که
توسط برخی از شی پویا ذکر شده در پیوند ارجاع می شوند.

اگر از "dlopen" برای بارگذاری یک شی پویا استفاده می کنید که نیاز به ارجاع دارد
بازگشت به نمادهای تعریف شده توسط برنامه، به جای برخی دیگر
شی پویا، پس احتمالاً باید از این گزینه استفاده کنید
پیوند دادن خود برنامه

همچنین می‌توانید از فهرست پویا برای کنترل نمادها استفاده کنید
اگر فرمت خروجی از آن پشتیبانی کند به جدول نماد پویا اضافه می شود.
توضیحات را ببینید --dynamic-list.

توجه داشته باشید که این گزینه مختص پورت های هدف ELF است. پلی اتیلن
اهداف از یک تابع مشابه برای صادرات همه نمادها از یک DLL پشتیبانی می کنند
یا EXE؛ توضیحات را ببینید --صادرات همه نمادها زیر کلیک کنید.

-EB اجسام بزرگ هندی را پیوند دهید. این بر فرمت خروجی پیش فرض تأثیر می گذارد.

-The اشیاء کوچک اندین را پیوند دهید. این بر خروجی پیش فرض تأثیر می گذارد
فرمت.

-f نام
--کمکی=نام
هنگام ایجاد یک شی مشترک ELF، DT_AUXILIARY داخلی را تنظیم کنید
فیلد به نام مشخص شده این به پیوند دهنده پویا می گوید که
جدول نماد شی مشترک باید به عنوان یک استفاده شود
فیلتر کمکی در جدول نماد شی مشترک نام.

اگر بعداً برنامه ای را در برابر این شی فیلتر پیوند دهید، پس چه زمانی
شما برنامه را اجرا کنید، پیوند دهنده پویا DT_AUXILIARY را می بیند
رشته. اگر پیوند دهنده پویا هر نمادی را از فیلتر حل کند
شی، ابتدا بررسی می کند که آیا تعریفی در آن وجود دارد یا خیر
شی مشترک نام. اگر وجود داشته باشد، به جای آن استفاده می شود
تعریف در شی فیلتر شیء مشترک نام نیاز
وجود ندارد. بنابراین شیء مشترک نام ممکن است برای ارائه یک
اجرای جایگزین از توابع خاص، شاید برای
اشکال زدایی یا برای عملکرد خاص ماشین.

این گزینه ممکن است بیش از یک بار مشخص شود. DT_AUXILIARY
ورودی ها به ترتیبی که در آن ظاهر می شوند ایجاد می شوند
خط فرمان.

-F نام
-- فیلتر =نام
هنگام ایجاد یک شی مشترک ELF، DT_FILTER داخلی را تنظیم کنید
فیلد به نام مشخص شده این به پیوند دهنده پویا می گوید که
جدول نماد شی مشترکی که در حال ایجاد است باید
به عنوان یک فیلتر در جدول نمادهای شی مشترک استفاده شود نام.

اگر بعداً برنامه ای را در برابر این شی فیلتر پیوند دهید، پس چه زمانی
شما برنامه را اجرا کنید، پیوند دهنده پویا DT_FILTER را می بیند
رشته. پیوند دهنده پویا نمادها را مطابق با حل و فصل می کند
جدول نماد شی فیلتر طبق معمول، اما در واقع خواهد بود
پیوند به تعاریف یافت شده در شیء مشترک نام. بنابراین
شی فیلتر می تواند برای انتخاب زیر مجموعه ای از نمادها استفاده شود
توسط شی ارائه شده است نام.

برخی از لینک‌های قدیمی‌تر از آن استفاده می‌کردند -F گزینه در سراسر مجموعه
زنجیره ابزار برای تعیین فرمت فایل شی برای ورودی و
فایل های شی خروجی پیوند دهنده گنو از مکانیسم های دیگری برای این کار استفاده می کند
هدف: -b, --قالب, --oformat گزینه ها، دستور "TARGET".
در اسکریپت های پیوند دهنده و متغیر محیطی "GNUTARGET". در
پیوند دهنده گنو این را نادیده می گیرد -F گزینه زمانی که ELF ایجاد نمی کنید
شی مشترک

-فینی=نام
هنگام ایجاد یک شیء اجرایی یا اشتراک گذاری شده ELF، NAME را فراخوانی کنید
با تنظیم DT_FINI روی شیء اجرایی یا اشتراکی بارگیری می شود
آدرس تابع به طور پیش فرض، پیوند دهنده از "_fini" استفاده می کند
به عنوان تابعی برای فراخوانی

-g نادیده گرفته شد. برای سازگاری با ابزارهای دیگر ارائه شده است.

-G ارزش
--gpsize=ارزش
حداکثر اندازه اشیا را برای بهینه سازی با استفاده از GP تنظیم کنید
ثبت نام در اندازه. این فقط برای فرمت های فایل شی معنادار است
مانند MIPS ELF که از قرار دادن اجسام بزرگ و کوچک در داخل پشتیبانی می کند
بخش های مختلف این برای سایر فرمت‌های فایل شی نادیده گرفته می‌شود.

-h نام
-سونام=نام
هنگام ایجاد یک شی مشترک ELF، DT_SONAME داخلی را تنظیم کنید
فیلد به نام مشخص شده وقتی یک فایل اجرایی با a پیوند داده می شود
شی به اشتراک گذاشته شده که دارای یک فیلد DT_SONAME است، سپس زمانی که قابل اجرایی است
اجرا می شود، پیوند دهنده پویا تلاش می کند تا شی به اشتراک گذاشته شده را بارگذاری کند
توسط فیلد DT_SONAME به جای استفاده از فایل مشخص شده است
نام داده شده به پیوند دهنده

-i پیوند افزایشی را انجام دهید (همان گزینه -r).

-init=نام
هنگام ایجاد یک شیء اجرایی یا اشتراک گذاری شده ELF، NAME را فراخوانی کنید
با تنظیم DT_INIT روی شیء اجرایی یا اشتراک گذاری شده بارگذاری می شود
آدرس تابع به طور پیش فرض، پیوند دهنده از "_init" استفاده می کند
به عنوان تابعی برای فراخوانی

-l مشخصات نام
--کتابخانه =مشخصات نام
آرشیو یا فایل شی مشخص شده توسط را اضافه کنید مشخصات نام به لیستی از
فایل ها برای پیوند دادن این گزینه ممکن است چند بار استفاده شود. اگر
مشخصات نام از فرم است :نام فایل, ld مسیر کتابخانه را جستجو خواهد کرد
برای فایلی به نام نام فایل، در غیر این صورت کتابخانه را جستجو می کند
مسیر برای فایلی به نام libnamespec.a.

در سیستم هایی که از کتابخانه های مشترک پشتیبانی می کنند، ld همچنین ممکن است جستجو کند
فایل های غیر از libnamespec.a. به طور خاص، در ELF و SunOS
سیستم های، ld دایرکتوری را برای کتابخانه ای به نام جستجو می کند
libnamespec.so قبل از جستجو برای یک تماس libnamespec.a. (توسط
پسوند ".so" یک کتابخانه مشترک را نشان می دهد.) توجه داشته باشید
که این رفتار در مورد آن صدق نمی کند :نام فایل، که همیشه
فایلی به نام را مشخص می کند نام فایل.

پیوند دهنده تنها یک بار در مکانی که در آن قرار دارد، یک بایگانی را جستجو می کند
در خط فرمان مشخص شده است. اگر آرشیو الف را تعریف کند
نمادی که در شیئی که قبل از علامت ظاهر می شود، تعریف نشده بود
بایگانی در خط فرمان، پیوند دهنده شامل
فایل(های) مناسب از آرشیو با این حال، یک نماد تعریف نشده است
در شیئی که بعداً در خط فرمان ظاهر می شود باعث این نمی شود
پیوند دهنده برای جستجوی مجدد آرشیو.

مشاهده -( گزینه ای برای راهی برای وادار کردن پیوند دهنده به جستجو در آرشیوها
چندین بار.

ممکن است یک آرشیو را چندین بار در خط فرمان فهرست کنید.

این نوع جستجوی آرشیو برای پیوند دهنده های یونیکس استاندارد است.
با این حال ، اگر از آن استفاده می کنید ld در AIX، توجه داشته باشید که با آن متفاوت است
رفتار پیوند دهنده AIX

-L searchdir
--library-path=searchdir
اضافه کردن مسیر searchdir به لیست مسیرهایی که ld جستجو خواهد کرد
کتابخانه های آرشیو و ld اسکریپت های کنترلی می توانید از این گزینه استفاده کنید
هر تعداد بار دایرکتوری ها به ترتیب جستجو می شوند
که در خط فرمان مشخص شده اند. دایرکتوری ها
مشخص شده در خط فرمان قبل از پیش فرض جستجو می شوند
دایرکتوری ها همه -L گزینه ها برای همه اعمال می شود -l گزینه ها، صرف نظر از
ترتیب ظاهر شدن گزینه ها -L گزینه ها تاثیری ندارند
چگونه ld یک اسکریپت پیوند دهنده را جستجو می کند مگر اینکه -T گزینه مشخص شده است.

If searchdir با "="" شروع می شود، سپس "=" با علامت جایگزین می شود
sysroot پیشوندکنترل شده توسط --sysroot گزینه، یا مشخص شده است
هنگامی که پیوند دهنده پیکربندی شده است.

مجموعه پیش‌فرض مسیرهای جستجو شده (بدون مشخص شدن با -L)
بستگی به حالت شبیه سازی دارد ld استفاده می کند و در برخی موارد نیز
در مورد نحوه پیکربندی آن

همچنین می‌توان مسیرها را در یک اسکریپت پیوند با
دستور "SEARCH_DIR". دایرکتوری هایی که از این طریق مشخص شده اند جستجو می شوند
در نقطه ای که اسکریپت پیوند دهنده در دستور ظاهر می شود
خط.

-m شبیه سازی
تقلید کنید شبیه سازی پیوند دهنده می توانید موارد موجود را لیست کنید
شبیه سازی با -- پرحرف or -V گزینه.

اگر -m گزینه استفاده نمی شود، شبیه سازی از روی گرفته شده است
متغیر محیطی "LDEMULATION" اگر تعریف شده باشد.

در غیر این صورت، شبیه‌سازی پیش‌فرض به نحوه اتصال دهنده بستگی دارد
پیکربندی شده است

-M
--چاپ-نقشه
یک نقشه پیوند به خروجی استاندارد چاپ کنید. نقشه پیوند ارائه می دهد
اطلاعات مربوط به پیوند، از جمله موارد زیر:

· جایی که فایل های شی در حافظه نگاشت می شوند.

· نحوه تخصیص نمادهای رایج.

· تمامی اعضای آرشیو موجود در لینک، با ذکر نام
نمادی که باعث شد عضو بایگانی وارد شود.

· مقادیر اختصاص داده شده به نمادها.

توجه - نمادهایی که مقادیر آنها توسط عبارتی محاسبه می شود که
شامل ارجاع به مقدار قبلی همان نماد ممکن است
نتیجه درست در نقشه پیوند نمایش داده نشده است. این هست
زیرا پیوند دهنده نتایج میانی و تنها را دور می اندازد
ارزش نهایی یک عبارت را حفظ می کند. تحت چنین
در شرایطی که پیوند دهنده مقدار نهایی بسته شده را نمایش می دهد
توسط براکت مربع بنابراین برای مثال یک اسکریپت پیوند دهنده
حاوی:

فو = 1
فو = فو * 4
فو = فو + 8

خروجی زیر را در نقشه پیوند تولید خواهد کرد اگر -M
گزینه استفاده می شود:

0x00000001 foo = 0x1
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)

دیدن عبارات برای اطلاعات بیشتر در مورد عبارات در
اسکریپت های پیوند دهنده

-n
--nmagic
تراز صفحه بخش ها را غیرفعال کنید و پیوند دادن را غیرفعال کنید
کتابخانه های مشترک اگر فرمت خروجی از جادوی سبک یونیکس پشتیبانی می کند
اعداد، خروجی را به عنوان "NMAGIC" علامت گذاری کنید.

-N
-- جادویی
قسمت های متن و داده را به گونه ای تنظیم کنید که قابل خواندن و نوشتن باشند. همچنین،
بخش داده را صفحه تراز نکنید و پیوند دادن را غیرفعال کنید
کتابخانه های مشترک اگر فرمت خروجی از جادوی سبک یونیکس پشتیبانی می کند
اعداد، خروجی را به عنوان "OMAGIC" علامت گذاری کنید. توجه: اگرچه قابل نوشتن است
بخش متن برای اهداف PE-COFF مجاز است، با آن مطابقت ندارد
مشخصات فرمت منتشر شده توسط مایکروسافت.

-- بدون جادو
این گزینه بیشتر تأثیرات را نفی می کند -N گزینه. تنظیم می کند
بخش متن فقط خواندنی باشد و بخش داده را مجبور می کند که باشد
صفحه تراز شده توجه - این گزینه لینک کردن در مقابل را فعال نمی کند
کتابخانه های مشترک استفاده کنید -بی دینامیک برای این.

-o تولید
--خروجی=تولید
استفاده کنید تولید به عنوان نام برنامه تولید شده توسط ld; اگر این
گزینه مشخص نشده است، نام a.out به صورت پیش فرض استفاده می شود. را
دستور اسکریپت "OUTPUT" همچنین می تواند نام فایل خروجی را مشخص کند.

-O سطح
If سطح مقادیر عددی بزرگتر از صفر است ld را بهینه می کند
خروجی این ممکن است به طور قابل توجهی بیشتر طول بکشد و بنابراین
احتمالا فقط باید برای باینری نهایی فعال شود. در
لحظه ای که این گزینه فقط بر تولید کتابخانه مشترک ELF تأثیر می گذارد.
انتشارات بعدی پیوند دهنده ممکن است از این گزینه بیشتر استفاده کند.
همچنین در حال حاضر هیچ تفاوتی در رفتار پیوند دهنده برای وجود ندارد
مقادیر مختلف غیر صفر این گزینه. دوباره این ممکن است تغییر کند
با نسخه های آینده

- حالت فشار
La - حالت فشار اجازه می دهد تا وضعیت فعلی پرچم ها حفظ شود
که مدیریت فایل ورودی را کنترل می کنند تا همه آنها بتوانند باشند
با یکی مربوطه بازسازی شد ---pop-state گزینه.

گزینه هایی که تحت پوشش قرار می گیرند عبارتند از: -بی دینامیک, -Bstatic, -dn, -دی,
-call_shared, -non_shared, -استاتیک, -N, -n, --کل-بایگانی,
--بدون کل آرشیو, -r, -اور, --copy-dt-needed-entries,
--no-copy-dt-needed-entries, --به عنوان مورد نیاز, --بدون نیازو -a.

یک هدف برای این گزینه مشخصات برای پیکربندی pkgاست. وقتی که
استفاده می شود با --libs گزینه همه کتابخانه های احتمالا مورد نیاز هستند
لیست شده و سپس احتمالاً همیشه با آن پیوند داده شده است. بهتر است که
چیزی را به صورت زیر برگردانید:

-Wl،--pop-state،--در صورت نیاز -libone -libtwo -Wl،--pop-state

اثر --push-state را خنثی می کند، مقادیر قبلی را بازیابی می کند
پرچم های حاکم بر مدیریت فایل های ورودی

-q
--emit-relocs
بخش‌ها و محتویات جابه‌جایی را در فایل‌های اجرایی کاملاً پیوند داده شده بگذارید.
ابزارهای تحلیل و بهینه سازی پیوند پست ممکن است به این اطلاعات نیاز داشته باشند
به منظور انجام اصلاحات صحیح در فایل های اجرایی. این
منجر به فایل های اجرایی بزرگتر می شود.

این گزینه در حال حاضر فقط در پلتفرم های ELF پشتیبانی می شود.

- نیروی پویا
فایل خروجی را مجبور کنید که بخش های پویا داشته باشد. این گزینه است
مخصوص اهداف VxWorks.

-r
--قابل جابجایی
تولید خروجی قابل جابجایی --- یعنی یک فایل خروجی که
می تواند به نوبه خود به عنوان ورودی عمل کند ld. این اغلب نامیده می شود جزئي
ارتباط. به عنوان یک عارضه جانبی، در محیط هایی که استاندارد را پشتیبانی می کنند
اعداد جادویی یونیکس، این گزینه جادوی فایل خروجی را نیز تنظیم می کند
شماره به "OMAGIC". اگر این گزینه مشخص نشده باشد، مطلق است
فایل تولید می شود. هنگام پیوند دادن برنامه های ++C، این گزینه اراده نه
حل ارجاعات به سازنده ها برای انجام آن، استفاده کنید -اور.

وقتی یک فایل ورودی فرمت یکسانی با خروجی ندارد
فایل، پیوند جزئی تنها در صورتی پشتیبانی می‌شود که آن فایل ورودی پشتیبانی نشود
حاوی هرگونه جابجایی فرمت های خروجی مختلف می توانند بیشتر داشته باشند
محدودیت های؛ برای مثال برخی از قالب‌های مبتنی بر "a.out" پشتیبانی نمی‌کنند
پیوند جزئی با فایل های ورودی در فرمت های دیگر اصلا.

این گزینه همان کار را انجام می دهد -i.

-R نام فایل
--just-symbols=نام فایل
نام نمادها و آدرس آنها را از اینجا بخوانید نام فایل، اما نکن
آن را تغییر مکان دهید یا در خروجی قرار دهید. این به خروجی شما اجازه می دهد
فایل برای ارجاع نمادین به مکان های مطلق حافظه تعریف شده
در برنامه های دیگر می توانید از این گزینه بیش از یک بار استفاده کنید.

برای سازگاری با سایر پیوند دهنده های ELF، اگر -R گزینه است
پس از آن یک نام دایرکتوری، به جای نام فایل، آن است
به عنوان درمان می شود -rpath گزینه.

-s
-- نوار همه
تمام اطلاعات نماد را از فایل خروجی حذف کنید.

-S
-- strip-debug
اطلاعات نماد اشکال زدا (اما نه همه نمادها) را از قسمت حذف کنید
فایل خروجی.

-t
--پی گیری
چاپ نام فایل های ورودی به عنوان ld آنها را پردازش می کند.

-T فایل اسکریپت
--script=فایل اسکریپت
استفاده کنید فایل اسکریپت به عنوان اسکریپت پیوند دهنده این اسکریپت جایگزین می شود ld's
اسکریپت پیوند دهنده پیش فرض (به جای اضافه کردن به آن)، بنابراین فایل فرمان
باید همه چیز لازم برای توصیف فایل خروجی را مشخص کند.
If فایل اسکریپت در فهرست فعلی وجود ندارد، "ld" به نظر می رسد
برای آن در دایرکتوری های مشخص شده توسط هر قبلی -L گزینه.
چندین -T گزینه ها جمع می شوند

-dT فایل اسکریپت
--default-script=فایل اسکریپت
استفاده کنید فایل اسکریپت به عنوان اسکریپت پیوند دهنده پیش فرض.

این گزینه شبیه به - متن گزینه به جز آن
پردازش اسکریپت تا بعد از بقیه به تعویق افتاد
خط فرمان پردازش شده است. این اجازه می دهد تا گزینه های قرار داده شده بعد
la -- پیش فرض اسکریپت گزینه ای در خط فرمان برای تحت تاثیر قرار دادن
رفتار اسکریپت پیوند دهنده، که می تواند مهم باشد زمانی که
خط فرمان لینکر مستقیماً توسط کاربر قابل کنترل نیست. (به عنوان مثال
زیرا خط فرمان توسط ابزار دیگری ساخته می شود
as gcc).

-u نماد
--تعریف نشده=نماد
استحکام نماد در فایل خروجی به صورت تعریف نشده وارد شود
سمبل. برای مثال، انجام این کار ممکن است باعث ایجاد پیوند اضافی شود
ماژول های کتابخانه های استاندارد -u ممکن است با موارد مختلف تکرار شود
آرگومان های گزینه برای وارد کردن نمادهای تعریف نشده اضافی. این
گزینه معادل دستور اسکریپت پیوند دهنده "EXTERN" است.

اگر از این گزینه برای اجبار ماژول های اضافی استفاده می شود
به لینک کشیده می شود و اگر خطایی برای نماد باشد
تعریف نشده باقی می ماند، سپس گزینه --نیاز-تعریف شده باید استفاده شود
به جای آن.

--require-defined=نماد
آن را ایجاب کند نماد در فایل خروجی تعریف شده است. این گزینه است
همان گزینه -- تعریف نشده جز اینکه اگر نماد تعریف نشده است
در فایل خروجی، لینک دهنده یک خطا صادر می کند و خارج می شود.
همین اثر را می توان با استفاده از یک اسکریپت پیوند دهنده به دست آورد
"EXTERN"، "ASSERT" و "DEFINED" با هم. این گزینه قابل استفاده است
چندین بار برای نیاز به نمادهای اضافی.

-اور برای هر چیزی غیر از برنامه های ++C، این گزینه معادل است
-r: خروجی قابل جابجایی تولید می کند ---یعنی یک فایل خروجی که می تواند
به نوبه خود به عنوان ورودی خدمت می کنند ld. هنگام پیوند دادن برنامه های ++C، -اور میکند
حل ارجاع به سازنده ها، بر خلاف -r. این کار نمی کند
استفاده کنید -اور روی فایل هایی که خودشان با آنها مرتبط بودند -اور؛ از وقتی که
جدول سازنده ساخته شده است، نمی توان آن را اضافه کرد. استفاده کنید -اور
فقط برای آخرین پیوند جزئی، و -r برای بقیه

یتیم-دستی =MODE
نحوه رسیدگی به بخش های یتیم را کنترل کنید. بخش یتیم یکی است
به طور خاص در یک اسکریپت پیوند دهنده ذکر نشده است.

MODE می تواند هر یک از مقادیر زیر را داشته باشد:

"محل"
بخش های یتیم در یک بخش خروجی مناسب قرار می گیرند
پیروی از استراتژی شرح داده شده در یتیم بخش ها.
انتخاب --منحصر بفرد همچنین بر نحوه قرارگیری بخش ها تأثیر می گذارد.

"دور انداختن"
تمام بخش های یتیم با قرار دادن آنها در قسمت دور انداخته می شوند
/رد کردن/ بخش.

"اخطار"
پیوند دهنده بخش یتیم را مانند "مکان" و قرار می دهد
اخطار هم بدهد

"خطا"
اگر بخش یتیم باشد، پیوند دهنده با خطا خارج می شود
پیدا شده است.

پیش فرض اگر -- یتیم رسیدگی داده نمی شود "مکان" است.

-- منحصر به فرد[=بخش]
یک بخش خروجی جداگانه برای هر بخش ورودی مطابقت ایجاد می کند
بخش، یا اگر علامت عام اختیاری باشد بخش استدلال گم شده است،
برای هر بخش ورودی یتیم بخش یتیم یکی نیست
به طور خاص در یک اسکریپت پیوند دهنده ذکر شده است. می توانید از این گزینه استفاده کنید
چندین بار در خط فرمان؛ از ادغام عادی جلوگیری می کند
از بخش های ورودی با همان نام، بخش خروجی نادیده گرفته می شود
تکالیف در یک اسکریپت پیوند دهنده

-v
- نسخه
-V نمایش شماره نسخه برای ld. -V گزینه را نیز لیست می کند
شبیه سازی های پشتیبانی شده

-x
- همه را کنار بگذارید
تمام نمادهای محلی را حذف کنید.

-X
-- دور انداختن-محلی ها
تمام نمادهای محلی موقت را حذف کنید. (این نمادها با
معمولاً پیشوندهای برچسب محلی مخصوص سیستم .L برای سیستم های ELF
or L برای سیستم های سنتی a.out.)

-y نماد
--trace-symbol=نماد
نام هر فایل لینک شده را چاپ کنید نماد ظاهر می شود. این
گزینه ممکن است هر چند بار داده شود. در بسیاری از سیستم ها اینطور است
برای اضافه کردن خط زیر ضروری است.

این گزینه زمانی مفید است که یک نماد تعریف نشده در خود داشته باشید
لینک کنید اما نمی دانم مرجع از کجا آمده است.

-Y مسیر
اضافه کردن مسیر به مسیر پیش فرض جستجوی کتابخانه. این گزینه وجود دارد
برای سازگاری سولاریس

-z کلمه کلیدی
کلمات کلیدی شناخته شده عبارتند از:

کامبرلوک
چندین بخش reloc را ترکیب می کند و آنها را برای ایجاد پویا مرتب می کند
جستجوی نماد در حافظه پنهان امکان پذیر است.

دفاع می کند
نمادهای تعریف نشده را در فایل های شی مجاز نمی کند. نمادهای تعریف نشده
در کتابخانه های مشترک هنوز مجاز هستند.

execstack
شی را به عنوان نیاز به پشته اجرایی علامت گذاری می کند.

جهانی
این گزینه فقط در هنگام ساختن یک شیء مشترک معنادار است.
نمادهای تعریف شده توسط این شی مشترک را در دسترس قرار می دهد
برای وضوح نماد کتابخانه های بارگذاری شده بعدی.

init first
این گزینه فقط در هنگام ساختن یک شیء مشترک معنادار است.
آن شی را به گونه ای علامت گذاری می کند که مقداردهی اولیه زمان اجرا آن خواهد بود
قبل از مقداردهی اولیه در زمان اجرا هر شی دیگری رخ می دهد
در همان زمان وارد فرآیند شد. به طور مشابه
نهایی شدن زمان اجرا شی بعد از زمان اجرا رخ خواهد داد
نهایی کردن هر چیز دیگر

قرار دادن
شیئی را که جدول نماد آن قبل از همه قرار می دهد علامت گذاری می کند
نمادها اما قابل اجرایی اولیه.

تنبل
هنگام ایجاد یک کتابخانه اجرایی یا مشترک، آن را علامت گذاری کنید
به پیوند دهنده پویا بگویید که وضوح فراخوانی تابع را به تعویق بیاندازد
نقطه ای که تابع فراخوانی می شود (Lzy binding)، بلکه
نسبت به زمان بارگذاری Lazy binding پیش فرض است.

loadfltr
شیئی را که فیلترهای آن فوراً در آن پردازش می شوند علامت گذاری می کند
زمان اجرا

مولدف
امکان تعاریف متعدد را فراهم می کند.

نوکامبرلوک
ترکیب چند بخش reloc را غیرفعال می کند.

nocopyreloc
غیرفعال کردن متغیرهای .dynbss ایجاد شده توسط پیوند دهنده که به جای آن استفاده می شوند
متغیرهای تعریف شده در کتابخانه های مشترک ممکن است منجر به پویایی شود
جابجایی متن

nodefaultlib
علامت گذاری شی که جستجو برای وابستگی از این
شی هر مسیر پیش فرض جستجوی کتابخانه را نادیده می گیرد.

گره
علامت گذاری می کند که شی نباید در زمان اجرا بارگیری شود.

گره زدن
شیء را که در دسترس نیست برای "dlopen" علامت گذاری می کند.

گره
علامت گذاری می کند که شی را نمی توان با "dldump" انداخت.

noexecstack
شی را به عنوان عدم نیاز به پشته اجرایی علامت گذاری می کند.

متن
DT_TEXTREL را در شیء مشترک به عنوان خطا در نظر بگیرید.

متن
DT_TEXTREL را در شیء مشترک به عنوان خطا تلقی نکنید.

textoff
DT_TEXTREL را در شیء مشترک به عنوان خطا تلقی نکنید.

نورلرو
سرصفحه بخش ELF "PT_GNU_RELRO" در قسمت ایجاد نکنید
هدف - شی.

اکنون هنگام ایجاد یک کتابخانه اجرایی یا مشترک، آن را علامت گذاری کنید
به پیوند دهنده پویا بگویید که همه نمادها را هنگام اجرای برنامه حل کند
شروع می شود، یا زمانی که کتابخانه مشترک به استفاده پیوند داده شده است
dlopen، به جای اینکه وضوح فراخوانی تابع را به تعویق بیندازید
نقطه زمانی که تابع برای اولین بار فراخوانی می شود.

منشاء
علامت گذاری می کند که شی ممکن است حاوی $ORIGIN باشد.

relro
یک سرصفحه قطعه ELF "PT_GNU_RELRO" در شی ایجاد کنید.

max-page-size=ارزش
حداکثر اندازه صفحه شبیه سازی را روی آن تنظیم کنید ارزش.

common-page-size=ارزش
اندازه صفحه معمولی شبیه سازی را روی آن تنظیم کنید ارزش.

stack-size=ارزش
اندازه پشته را برای یک بخش ELF "PT_GNU_STACK" مشخص کنید.
تعیین صفر هر اندازه پیش فرض غیرصفری را لغو می کند
ایجاد بخش "PT_GNU_STACK".

bndplt
همیشه پیشوند BND را در ورودی های PLT ایجاد کنید. پشتیبانی شده برای
Linux/x86_64.

noextern-protected-data
هنگام ساخت، نماد داده های محافظت شده را خارجی تلقی نکنید
کتابخانه مشترک این گزینه پیش فرض باطن پیوند دهنده را لغو می کند.
می توان از آن برای رفع جابجایی های نادرست استفاده کرد
نمادهای داده محافظت شده تولید شده توسط کامپایلر. به روز رسانی در
نمادهای داده محافظت شده توسط ماژول دیگر برای آن قابل مشاهده نیستند
کتابخانه مشترک حاصل پشتیبانی از i386 و x86-64.

call-nop=prefix-addr
call-nop=پیوند-nop
call-nop=پسوند-nop
call-nop=پیشوند-بایت
call-nop=پسوند-بایت
هنگام تبدیل غیر مستقیم، بالشتک 1 بایتی "NOP" را مشخص کنید
از طریق اسلات GOT به یک تابع تعریف شده محلی، foo، تماس بگیرید.
call-nop=prefix-addr "0x67 call foo" را ایجاد می کند.
call-nop=پیوند-nop "0x90 call foo" را ایجاد می کند.
call-nop=پسوند-nop "call foo 0x90" را ایجاد می کند.
call-nop=پیشوند-بایت تولید می کند "بایت صدا فو".
call-nop=پسوند-بایت "call foo" را تولید می کند بایت". پشتیبانی شده برای
i386 و x86_64.

سایر کلمات کلیدی برای سازگاری Solaris نادیده گرفته می شوند.

-( بایگانی -)
-- شروع-گروه بایگانی --پایان-گروه
La بایگانی باید لیستی از فایل های آرشیو باشد. آنها ممکن است هر دو باشند
نام فایل های صریح، یا -l گزینه.

بایگانی های مشخص شده به طور مکرر جستجو می شوند تا زمانی که جدید نباشند
مراجع نامشخص ایجاد می شود. به طور معمول، یک آرشیو جستجو می شود
فقط یک بار به ترتیبی که در خط فرمان مشخص شده است.
اگر یک نماد در آن آرشیو برای حل یک نام تعریف نشده مورد نیاز است
نمادی که توسط یک شی در آرشیو که بعداً ظاهر می شود به آن اشاره می شود
در خط فرمان، پیوند دهنده قادر به حل آن نیست
مرجع. با گروه بندی آرشیوها، همه آنها جستجو می شوند
به طور مکرر تا زمانی که تمام مراجع ممکن حل شود.

استفاده از این گزینه هزینه عملکرد قابل توجهی دارد. بهترین است
برای استفاده از آن تنها زمانی که مراجع دایره ای اجتناب ناپذیر وجود دارد
بین دو یا چند آرشیو

--accept-unknown-input-arch
--no-accept-unknown-input-arch
به پیوند دهنده می‌گوید فایل‌های ورودی را بپذیرد که معماری آن‌ها نمی‌تواند باشد
شناسایی شده. فرض این است که کاربر می داند آنها چیست
انجام می دهد و به عمد می خواهد در این فایل های ورودی ناشناخته پیوند دهد.
این رفتار پیش‌فرض پیوند دهنده، قبل از انتشار 2.14 بود.
رفتار پیش‌فرض از نسخه 2.14 به بعد رد کردن چنین چیزی است
فایل های ورودی و غیره --accept-unknown-input-arch گزینه بوده است
برای بازگرداندن رفتار قدیمی اضافه شده است.

--به عنوان مورد نیاز
--بدون نیاز
این گزینه بر برچسب های ELF DT_NEEDED برای کتابخانه های پویا تأثیر می گذارد
در خط فرمان بعد از --به عنوان مورد نیاز گزینه.
به طور معمول پیوند دهنده یک تگ DT_NEEDED برای هر دینامیک اضافه می کند
کتابخانه ذکر شده در خط فرمان، صرف نظر از اینکه آیا
کتابخانه واقعا مورد نیاز است یا نه. --به عنوان مورد نیاز باعث DT_NEEDED می شود
برچسب فقط برای کتابخانه ای منتشر می شود که at که نقطه in la پیوند
یک مرجع نماد غیر ضعیف تعریف نشده از یک معمولی را برآورده می کند
فایل شی یا اگر کتابخانه در لیست های DT_NEEDED یافت نشد
از دیگر کتابخانه های مورد نیاز، یک مرجع نماد غیرضعیف تعریف نشده است
از یک کتابخانه پویا مورد نیاز دیگر. فایل های شی یا کتابخانه ها
در خط فرمان ظاهر می شود بعد از کتابخانه مورد نظر ندارد
روی اینکه آیا کتابخانه به عنوان مورد نیاز دیده می شود یا خیر، تأثیر می گذارد. این شبیه به
قوانین استخراج فایل های شی از بایگانی
--بدون نیاز رفتار پیش فرض را بازیابی می کند.

--افزودن لازم است
--بدون نیاز به افزودن
این دو گزینه به دلیل مشابهت منسوخ شده اند
نام آنها به --به عنوان مورد نیاز و --بدون نیاز گزینه ها. آنها
جایگزین شده اند توسط --copy-dt-needed-entries و
--no-copy-dt-needed-entries.

-اصرار کلمه کلیدی
این گزینه برای سازگاری SunOS نادیده گرفته می شود.

-بی دینامیک
-دی
-call_shared
پیوند در برابر کتابخانه های پویا. این فقط در مورد معنادار است
پلتفرم هایی که کتابخانه های مشترک برای آنها پشتیبانی می شود. این گزینه است
به طور معمول در چنین سیستم عامل هایی پیش فرض است. انواع مختلف از
این گزینه برای سازگاری با سیستم های مختلف است. شما ممکن است
از این گزینه چندین بار در خط فرمان استفاده کنید: تأثیر می گذارد
جستجوی کتابخانه برای -l گزینه هایی که از آن پیروی می کنند.

-بگروه
پرچم "DF_1_GROUP" را در ورودی "DT_FLAGS_1" در پویا تنظیم کنید
بخش. این باعث می شود که پیوند دهنده زمان اجرا به جستجوها در این مورد رسیدگی کند
شی و وابستگی های آن فقط در داخل گروه اجرا شود.
--unresolved-symbols=گزارش همه ضمنی است. این گزینه فقط
در پلتفرم‌های ELF که از کتابخانه‌های مشترک پشتیبانی می‌کنند، معنادار است.

-Bstatic
-dn
-non_shared
-استاتیک
در مقابل کتابخانه های مشترک پیوند ندهید. این فقط در مورد معنادار است
پلتفرم هایی که کتابخانه های مشترک برای آنها پشتیبانی می شود. متفاوت
انواع این گزینه برای سازگاری با سیستم های مختلف است.
می توانید از این گزینه چندین بار در خط فرمان استفاده کنید: it
بر جستجوی کتابخانه تأثیر می گذارد -l گزینه هایی که از آن پیروی می کنند. این
گزینه نیز دلالت دارد --unresolved-symbols=گزارش همه. این گزینه
قابل استفاده با -به اشتراک گذاشته شده. انجام این کار به این معنی است که یک کتابخانه مشترک است
ایجاد می شود اما تمام مراجع خارجی کتابخانه
باید با کشیدن ورودی از کتابخانه های ایستا حل شود.

-نمادین
هنگام ایجاد یک کتابخانه مشترک، ارجاعات را به نمادهای جهانی متصل کنید
به تعریف موجود در کتابخانه مشترک، در صورت وجود. به طور معمول، آن را
برای برنامه ای که در برابر یک کتابخانه مشترک به هم پیوند داده شده است امکان پذیر است
نادیده گرفتن تعریف در کتابخانه مشترک. این گزینه می تواند
همچنین با -- صادرات - پویا گزینه، هنگام ایجاد یک
موقعیت اجرایی مستقل، برای اتصال مراجع به جهانی
نمادها به تعریف در فایل اجرایی. این گزینه است
فقط در پلتفرم های ELF که از کتابخانه های مشترک و
موقعیت اجرایی مستقل

توابع نمادین
هنگام ایجاد یک کتابخانه مشترک، ارجاعات را به تابع سراسری متصل کنید
نمادها به تعریف در کتابخانه مشترک، در صورت وجود. این
گزینه همچنین می تواند با استفاده شود -- صادرات - پویا گزینه، زمانی که
ایجاد یک موقعیت اجرایی مستقل، برای اتصال مراجع به
نمادهای تابع جهانی به تعریف در فایل اجرایی.
این گزینه فقط در پلتفرم های ELF که پشتیبانی می کنند معنادار است
کتابخانه های مشترک و فایل های اجرایی مستقل موقعیت.

--dynamic-list=dynamic-list-file
نام یک فایل لیست پویا را به پیوند دهنده مشخص کنید. این هست
معمولاً هنگام ایجاد کتابخانه های مشترک برای تعیین لیستی از
نمادهای جهانی که ارجاعات آنها نباید به آن محدود شود
تعریف در کتابخانه مشترک، یا ایجاد پویا
فایل های اجرایی مرتبط برای تعیین لیستی از نمادها که باید باشند
به جدول نماد در فایل اجرایی اضافه شده است. این گزینه فقط
در پلتفرم‌های ELF که از کتابخانه‌های مشترک پشتیبانی می‌کنند، معنادار است.

فرمت لیست پویا مانند گره نسخه است
بدون نام دامنه و گره دیدن نسخه برای اطلاعات بیشتر.

--dynamic-list-data
همه نمادهای داده های جهانی را به لیست پویا اضافه کنید.

--dynamic-list-cpp-new
لیست پویا داخلی را برای اپراتور C++ new ارائه و حذف کنید.
این عمدتا برای ساختن libstdc ++ مشترک مفید است.

--dynamic-list-cpp-typeinfo
لیست پویا داخلی را برای نوع زمان اجرا C++ ارائه دهید
شناسایی.

--بررسی بخش ها
--بدون بررسی بخش
از لینک دهنده می پرسد نه برای بررسی آدرس های بخش پس از آنها
اختصاص داده شد تا ببیند آیا همپوشانی وجود دارد یا خیر. به طور معمول پیوند دهنده
این بررسی را انجام می دهد و اگر همپوشانی هایی پیدا کرد انجام می دهد
پیام های خطای مناسب تولید کنید پیوند دهنده در مورد و می داند
برای بخش‌ها در روکش‌ها هزینه‌هایی در نظر می‌گیرد. پیشفرض
رفتار را می توان با استفاده از سوئیچ خط فرمان بازیابی کرد
--بررسی بخش ها. معمولاً همپوشانی بخش بررسی نمی شود
لینک های قابل جابجایی در این صورت می توانید با استفاده از آن، بررسی را اجباری کنید
la --بررسی بخش ها گزینه.

--copy-dt-needed-entries
--no-copy-dt-needed-entries
این گزینه بر درمان کتابخانه های پویا که به آنها اشاره شده است تأثیر می گذارد
توسط تگ های DT_NEEDED داخل کتابخانه های پویا ELF ذکر شده در
خط فرمان. به طور معمول پیوند دهنده تگ DT_NEEDED را به آن اضافه نمی کند
خروجی باینری برای هر کتابخانه ذکر شده در یک تگ DT_NEEDED در یک
کتابخانه پویا ورودی با --copy-dt-needed-entries مشخص شده در
خط فرمان، با این حال، هر کتابخانه پویا که از آن پیروی می کند، خواهد بود
ورودی های DT_NEEDED آنها اضافه شده است. رفتار پیش فرض می تواند باشد
بازسازی شده با --no-copy-dt-needed-entries.

این گزینه روی وضوح نمادها نیز تاثیر دارد
کتابخانه های پویا با --copy-dt-needed-entries کتابخانه های پویا
ذکر شده در خط فرمان به صورت بازگشتی جستجو خواهد شد،
دنبال کردن برچسب های DT_NEEDED خود به کتابخانه های دیگر، به منظور
نمادهای مورد نیاز باینری خروجی را حل کنید. با پیش فرض
با این حال، جستجوی کتابخانه‌های پویا را تنظیم می‌کند
با خود کتابخانه پویا متوقف خواهد شد. هیچ پیوند DT_NEEDED وجود ندارد
برای حل نمادها از آن عبور کرد.

--کرف
خروجی جدول مرجع متقاطع اگر یک فایل نقشه پیوند دهنده وجود دارد
ایجاد شده، جدول مرجع متقابل در فایل نقشه چاپ می شود.
در غیر این صورت روی خروجی استاندارد چاپ می شود.

قالب جدول عمدا ساده است، به طوری که ممکن است
در صورت لزوم به راحتی توسط یک اسکریپت پردازش می شود. نمادها چاپ می شوند
بر اساس نام مرتب شده است. برای هر نماد، لیستی از نام فایل ها وجود دارد
داده شده. اگر نماد تعریف شده باشد، اولین فایل لیست شده همان است
محل تعریف اگر نماد به صورت مشترک تعریف شود
سپس هر فایلی که این اتفاق می افتد در مرحله بعدی ظاهر می شود. در نهایت هر
فایل هایی که به نماد اشاره می کنند فهرست شده اند.

--بدون-تعریف-مشترک
این گزینه از تخصیص آدرس ها به نمادهای رایج جلوگیری می کند.
فرمان اسکریپت "INHIBIT_COMMON_ALLOCATION" همین اثر را دارد.

La --بدون-تعریف-مشترک گزینه اجازه می دهد تا تصمیم را جدا کنید
از انتخاب خروجی، آدرس ها را به نمادهای مشترک اختصاص دهید
نوع فایل؛ در غیر این صورت یک نوع خروجی غیر قابل جابجایی نیروها را تخصیص می دهد
آدرس به نمادهای رایج استفاده كردن --بدون-تعریف-مشترک اجازه می دهد تا
نمادهای رایجی که از یک کتابخانه مشترک به آنها ارجاع داده می شود
آدرس های اختصاص داده شده فقط در برنامه اصلی. این حذف می کند
فضای تکراری استفاده نشده در کتابخانه مشترک، و همچنین از هر گونه فضایی جلوگیری می کند
سردرگمی احتمالی در مورد حل مشکل تکراری در صورت وجود
بسیاری از ماژول های پویا با مسیرهای جستجوی تخصصی برای زمان اجرا هستند
وضوح نماد

--defsym=نماد=بیان
یک نماد سراسری در فایل خروجی ایجاد کنید که حاوی مطلق باشد
آدرس داده شده توسط بیان. می توانید از این گزینه چند بار استفاده کنید
در صورت لزوم برای تعریف چندین نماد در خط فرمان. آ
فرم محدودی از محاسبات برای بیان در این
متن: می توانید یک ثابت هگزادسیمال یا نام یک را بدهید
نماد موجود، یا از "+" و "-" برای اضافه یا تفریق هگزادسیمال استفاده کنید
ثابت ها یا نمادها اگر به عبارات دقیق تری نیاز دارید،
استفاده از زبان فرمان لینکر از یک اسکریپت را در نظر بگیرید. توجه داشته باشید:
هیچ فضای سفیدی بین آنها وجود ندارد نماد، علامت مساوی
("=") ، و بیان.

--demangle[=سبک]
-- بدون درهم ریختن
این گزینه ها کنترل می کنند که آیا نام نمادها به اشتباه جدا شود
پیام ها و سایر خروجی ها وقتی به پیوند دهنده گفته می شود که جدا کند، آن را جدا کند
سعی می کند نام نمادها را به شکلی خوانا ارائه کند: نوار می کند
در صورتی که توسط فرمت فایل شی مورد استفاده قرار گیرند، زیرخط های پیشرو، و
نام نمادهای مخدوش شده C++ را به نام های قابل خواندن توسط کاربر تبدیل می کند.
کامپایلرهای مختلف دارای سبک های مانگلینگ متفاوتی هستند. اختیاری
آرگومان سبک demanling می تواند برای انتخاب مناسب استفاده شود
سبک جداسازی برای کامپایلر شما پیوند دهنده توسط جدا می شود
پیش فرض مگر اینکه متغیر محیطی باشد COLLECT_NO_DEMANGLE تنظیم شده است
این گزینه ها ممکن است برای لغو پیش فرض استفاده شوند.

-Iپرونده
--dynamic-linker=پرونده
نام پیوند دهنده پویا را تنظیم کنید. این فقط زمانی معنا دارد که
تولید فایل های اجرایی ELF متصل به صورت پویا. دینامیک پیش فرض
پیوند دهنده معمولاً درست است. از این استفاده نکنید مگر اینکه بدانید چه چیزی دارید
انجام می دهند.

--no-dynamic-linker
هنگام تولید یک فایل اجرایی، درخواست پویا را حذف کنید
پیوند دهنده ای که در زمان بارگذاری استفاده می شود. این فقط برای ELF معنی دارد
فایل های اجرایی که حاوی جابجایی های پویا هستند و معمولاً نیاز دارند
کد نقطه ورودی که قادر به پردازش این جابجایی ها است.

- هشدارهای کشنده
--بدون هشدارهای کشنده
همه هشدارها را به عنوان خطا در نظر بگیرید. رفتار پیش فرض می تواند باشد
با گزینه بازیابی شد --بدون هشدارهای کشنده.

--force-exe-پسوند
مطمئن شوید که یک فایل خروجی دارای پسوند exe است.

اگر یک فایل خروجی کاملاً پیوند خورده با موفقیت ساخته شده باشد، دارای a
پسوند ".exe" یا ".dll"، این گزینه پیوند دهنده را مجبور به کپی کردن آن می کند
خروجی فایل به یکی از همین نام با پسوند "exe". این
این گزینه زمانی مفید است که از فایل های اصلاح نشده یونیکس در یک استفاده کنید
میزبان مایکروسافت ویندوز، زیرا برخی از نسخه های ویندوز اجرا نمی شوند
تصویر، مگر اینکه به پسوند ".exe" ختم شود.

--gc-sections
--no-gc-sections
جمع آوری زباله از بخش های ورودی استفاده نشده را فعال کنید. نادیده گرفته می شود
در اهدافی که از این گزینه پشتیبانی نمی کنند. رفتار پیش فرض
(از انجام ندادن این زباله جمع آوری) می توان توسط
مشخص کردن --no-gc-sections در خط فرمان به آن زباله توجه کنید
مجموعه برای اهداف فرمت COFF و PE پشتیبانی می شود، اما
پیاده سازی در حال حاضر آزمایشی در نظر گرفته می شود.

--gc-sections با بررسی تصمیم می گیرد که کدام بخش های ورودی استفاده شوند
نمادها و جابجایی ها بخش حاوی نماد ورودی
و تمام بخش های حاوی نمادهای تعریف نشده در خط فرمان
مانند بخش های حاوی نمادهای ارجاع شده توسط
اشیاء پویا توجه داشته باشید که هنگام ساخت کتابخانه های مشترک،
پیوند دهنده باید فرض کند که هر نماد قابل مشاهده ای ارجاع داده شده است. یک بار
این مجموعه اولیه از بخش ها تعیین شده است، پیوند دهنده
هر بخش که توسط آنها ارجاع داده شده است را به صورت بازگشتی علامت گذاری می کند
جابجایی ها دیدن -- ورود و -- تعریف نشده.

این گزینه را می توان هنگام انجام یک پیوند جزئی تنظیم کرد (فعال با
انتخاب -r). در این حالت ریشه نمادها باید باشد
به صراحت یا توسط یک مشخص شده است -- ورود or -- تعریف نشده گزینه یا
توسط یک دستور "ENTRY" در اسکریپت پیوند دهنده.

--print-gc-sections
--no-print-gc-sections
لیست تمام بخش های حذف شده توسط جمع آوری زباله. فهرست است
چاپ شده بر روی stderr. این گزینه فقط در صورت وجود زباله موثر است
مجموعه از طریق فعال شده است --gc-sections) گزینه. را
رفتار پیش‌فرض (در فهرست نشدن بخش‌هایی که حذف شده‌اند)
با مشخص کردن قابل بازیابی است --no-print-gc-sections در دستور
خط.

-قالب چاپ-خروجی
چاپ نام فرمت خروجی پیش فرض (شاید تحت تأثیر
سایر گزینه های خط فرمان). این رشته ای است که ظاهر می شود
در یک فرمان اسکریپت پیوند دهنده "OUTPUT_FORMAT".

--چاپ-حافظه-استفاده
اندازه استفاده شده، اندازه کل و اندازه استفاده شده از مناطق حافظه ایجاد شده را چاپ کنید
با حافظه فرمان این برای اهداف تعبیه شده مفید است
یک دید سریع از مقدار حافظه آزاد داشته باشید. فرمت از
خروجی دارای یک عنوان و یک خط در هر منطقه است. هر دو انسان است
قابل خواندن و به راحتی توسط ابزار قابل تجزیه است. در اینجا یک نمونه از یک است
خروجی:

منطقه حافظه استفاده شده اندازه منطقه اندازه % سن استفاده شده
رام: 256 کیلوبایت 1 مگابایت 25.00%
رم: 32 B 2 گیگابایت 0.00٪

--کمک
خلاصه ای از گزینه های خط فرمان را روی خروجی استاندارد چاپ کنید
و خارج شوید.

--هدف-کمک
خلاصه ای از تمام گزینه های خاص هدف را روی استاندارد چاپ کنید
خروجی و خروجی

-نقشه=نقشه فایل
یک نقشه پیوند به فایل چاپ کنید نقشه فایل. توضیحات را ببینید
-M گزینه، بالا

-حافظه بدون نگه داشتن
ld به طور معمول برای سرعت بیش از استفاده از حافظه با کش کردن بهینه سازی می شود
جداول نماد فایل های ورودی در حافظه این گزینه می گوید ld به
در عوض برای استفاده از حافظه، با خواندن مجدد جداول نماد، بهینه سازی کنید
تا جایی که لازم است. این ممکن است مورد نیاز باشد اگر ld فضای حافظه تمام می شود
در حالی که یک فایل اجرایی بزرگ را پیوند می دهد.

--بدون تعریف نشده
-z دفاع می کند
ارجاعات نماد حل نشده را از فایل های شی معمولی گزارش کنید.
این کار حتی اگر پیوند دهنده یک اشتراک‌گذاری غیر نمادین ایجاد کند، انجام می‌شود
کتابخانه سوئیچ --[no-]allow-shlib-undefined کنترل می کند
رفتار برای گزارش مراجع حل نشده یافت شده در اشتراک گذاری شده
کتابخانه ها در حال پیوند هستند

--allow-multiple-definition
-z مولدف
معمولاً وقتی یک نماد چندین بار تعریف می شود، پیوند دهنده این کار را انجام می دهد
گزارش یک خطای مرگبار این گزینه ها امکان تعاریف متعدد و
تعریف اول استفاده خواهد شد.

--allow-shlib-undefined
--no-allow-shlib-undefined
نمادهای تعریف نشده را در کتابخانه های مشترک مجاز یا غیرمجاز می کند. این
سوئیچ مشابه است --بدون تعریف نشده جز اینکه تعیین می کند
رفتار زمانی که نمادهای تعریف نشده در یک کتابخانه مشترک هستند
از یک فایل شی معمولی. این تأثیری بر عدم تعریف ندارد
نمادها در فایل های شی معمولی مدیریت می شوند.

رفتار پیش‌فرض گزارش خطا برای هر نماد تعریف نشده است
در صورتی که از پیوند دهنده استفاده شود در کتابخانه های مشترک ارجاع داده می شود
یک فایل اجرایی ایجاد کنید، اما در صورت استفاده از پیوند دهنده، به آنها اجازه دهید
برای ایجاد یک کتابخانه مشترک

دلایل اجازه دادن به ارجاعات نمادهای تعریف نشده به اشتراک گذاشته شده است
کتابخانه های مشخص شده در زمان پیوند عبارتند از:

· یک کتابخانه مشترک مشخص شده در زمان پیوند ممکن است مشابه نباشد
نمادی که در زمان بارگذاری در دسترس است، بنابراین نماد ممکن است
در واقع در زمان بارگذاری قابل حل است.

· برخی از سیستم عامل ها، به عنوان مثال BeOS و HPPA، که در آن وجود دارد
نمادهای تعریف نشده در کتابخانه های مشترک طبیعی هستند.

به عنوان مثال، هسته BeOS کتابخانه های مشترک را در بارگذاری وصله می کند
زمان برای انتخاب هر کدام از عملکردها مناسب تر است
معماری فعلی از این برای مثال استفاده می شود
به صورت پویا یک تابع memset مناسب را انتخاب کنید.

-نسخه بدون تعریف نشده
معمولاً هنگامی که یک نماد دارای یک نسخه تعریف نشده باشد، پیوند دهنده این کار را انجام می دهد
نادیده بگیر. این گزینه نمادهایی را با نسخه تعریف نشده و
به جای آن یک خطای کشنده صادر خواهد شد.

--پیش فرض-symver
یک نسخه نماد پیش فرض (sonname) برای ایجاد و استفاده کنید
نمادهای صادر شده بدون نسخه

--پیش فرض-وارداتی-سیمور
یک نسخه نماد پیش فرض (sonname) برای ایجاد و استفاده کنید
نمادهای وارداتی بدون نسخه

--بدون هشدار-عدم تطابق
به طور معمول ld اگر بخواهید ورودی را با هم پیوند دهید، خطا می دهد
فایل هایی که به دلایلی با هم مطابقت ندارند، شاید به این دلیل
برای پردازنده های مختلف یا برای پردازنده های مختلف کامپایل شده اند
پایانی ها این گزینه می گوید ld که باید بی سر و صدا اجازه دهد
چنین خطاهای احتمالی این گزینه فقط باید با دقت استفاده شود،
در مواردی که اقدام خاصی انجام داده اید که این امر را تضمین می کند
خطاهای پیوند دهنده نامناسب هستند.

--بدون هشدار-جستجو-عدم تطابق
به طور معمول ld اگر کتابخانه ناسازگاری پیدا کند، هشدار می دهد
در طول جستجوی کتابخانه این گزینه اخطار را خاموش می کند.

--بدون کل آرشیو
افکت را خاموش کنید --کل-بایگانی گزینه برای بعدی
پرونده های بایگانی

--noinhibit-exec
فایل خروجی اجرایی را هر زمان که هنوز قابل استفاده است، نگه دارید.
به طور معمول، پیوند دهنده در صورت وجود فایل خروجی تولید نمی کند
در طول فرآیند پیوند با خطا مواجه می شود. بدون نوشتن خارج می شود
یک فایل خروجی زمانی که هر گونه خطایی را صادر می کند.

-nostdlib
فقط دایرکتوری های کتابخانه را جستجو کنید که به صراحت در دستور مشخص شده است
خط فهرست راهنمای کتابخانه مشخص شده در اسکریپت های پیوند دهنده (از جمله
اسکریپت های پیوند دهنده مشخص شده در خط فرمان) نادیده گرفته می شوند.

--oformat=فرمت خروجی
ld ممکن است برای پشتیبانی از بیش از یک نوع فایل شی پیکربندی شود.
اگر شما ld به این صورت پیکربندی شده است، می توانید از --oformat انتخاب
برای تعیین فرمت باینری برای فایل شی خروجی. حتی وقتی که
ld برای پشتیبانی از فرمت های شی جایگزین پیکربندی شده است، شما این کار را نمی کنید
معمولاً باید این را مشخص کنید ld باید برای تولید پیکربندی شود
به عنوان یک فرمت خروجی پیش فرض معمول ترین فرمت در هر دستگاه.
فرمت خروجی یک رشته متن، نام یک قالب خاص است
توسط کتابخانه های BFD پشتیبانی می شود. (می توانید باینری موجود را فهرست کنید
قالب با ابجدمپ -i.) دستور اسکریپت "OUTPUT_FORMAT" می تواند
فرمت خروجی را نیز مشخص کنید، اما این گزینه آن را لغو می کند.

- پای
--pic-executable
یک موقعیت اجرایی مستقل ایجاد کنید. این فقط در حال حاضر است
بر روی پلتفرم های ELF پشتیبانی می شود. اجرایی مستقل از موقعیت هستند
شبیه به کتابخانه های مشترک به این دلیل که آنها توسط
پیوند دهنده پویا به آدرس مجازی که سیستم عامل برای آنها انتخاب می کند
(که می تواند بین فراخوان ها متفاوت باشد). مانند معمولی به صورت پویا
فایل های اجرایی مرتبط می توانند اجرا شوند و نمادها در آن تعریف شوند
قابل اجرا نمی تواند توسط کتابخانه های مشترک لغو شود.

-qmagic
این گزینه برای سازگاری با لینوکس نادیده گرفته می شود.

-کی این گزینه برای سازگاری SVR4 نادیده گرفته می شود.

--آروم باش
-- بدون آرامش
گزینه ای با افکت های وابسته به ماشین. این گزینه فقط
در چند هدف پشتیبانی می شود.

در برخی از سیستم عامل ها --آروم باش گزینه خاص هدف را انجام می دهد،
بهینه سازی های جهانی که با حل شدن لینکر امکان پذیر می شوند
آدرس دهی در برنامه، مانند حالت های آدرس آرام،
سنتز دستورالعمل های جدید، انتخاب نسخه کوتاه تر جریان
دستورالعمل ها و ترکیب مقادیر ثابت.

در برخی از پلتفرم‌ها ممکن است بهینه‌سازی‌های جهانی این زمان پیوند ایجاد کنند
اشکال زدایی نمادین فایل اجرایی حاصل غیرممکن است. این هست
شناخته شده برای خانواده ماتسوشیتا MN10200 و MN10300
پردازنده ها

در پلتفرم هایی که این پشتیبانی نمی شود، --آروم باش پذیرفته شده است، اما
نادیده گرفته شد

روی سکوهایی که در آن --آروم باش گزینه پذیرفته شده است -- بدون آرامش می تواند
برای غیرفعال کردن این ویژگی استفاده می شود.

--retain-symbols-file=نام فایل
حفظ فقط نمادهای لیست شده در فایل نام فایل، از بین بردن همه
دیگران. نام فایل به سادگی یک فایل مسطح، با یک نام نماد در هر است
خط این گزینه به ویژه در محیط هایی (مانند
VxWorks) که در آن یک جدول نماد جهانی بزرگ جمع شده است
به تدریج، برای حفظ حافظه زمان اجرا.

--retain-symbols-file میکند نه نمادهای تعریف نشده را کنار بگذارید، یا
نمادهای مورد نیاز برای جابجایی

شما فقط می توانید مشخص کنید --retain-symbols-file یک بار در فرمان
خط نادیده می گیرد -s و -S.

-rpath=دیر
یک دایرکتوری به مسیر جستجوی کتابخانه زمان اجرا اضافه کنید. این مورد استفاده قرار می گیرد
هنگام پیوند یک فایل اجرایی ELF با اشیاء مشترک. همه -rpath
آرگومان ها به هم متصل می شوند و به پیوند دهنده زمان اجرا ارسال می شوند که
از آنها برای مکان یابی اشیاء مشترک در زمان اجرا استفاده می کند. در -rpath انتخاب
همچنین برای مکان یابی اشیاء مشترک مورد نیاز استفاده می شود
اشیاء مشترک به صراحت در پیوند گنجانده شده است. توضیحات را ببینید
از -rpath-link گزینه. اگر -rpath هنگام پیوند دادن از یک استفاده نمی شود
ELF قابل اجرا، محتویات متغیر محیطی
"LD_RUN_PATH" در صورت تعریف استفاده خواهد شد.

La -rpath گزینه ممکن است در SunOS نیز استفاده شود. به طور پیش فرض، در SunOS،
پیوند دهنده یک مسیر جستجوی زمان اجرا از بین تمام موارد را تشکیل می دهد -L
گزینه های آن داده شده است. اگر یک -rpath از گزینه استفاده می شود، زمان اجرا
مسیر جستجو منحصراً با استفاده از -rpath گزینه ها،
نادیده گرفتن -L گزینه ها. این می تواند هنگام استفاده از gcc مفید باشد
بسیاری را اضافه می کند -L گزینه هایی که ممکن است در سیستم های فایل نصب شده NFS باشند.

برای سازگاری با سایر پیوند دهنده های ELF، اگر -R گزینه است
پس از آن یک نام دایرکتوری، به جای نام فایل، آن است
به عنوان درمان می شود -rpath گزینه.

-rpath-link=دیر
هنگام استفاده از ELF یا SunOS، یک کتابخانه مشترک ممکن است به کتابخانه دیگری نیاز داشته باشد.
این زمانی اتفاق می افتد که یک پیوند "ld -shared" شامل یک کتابخانه مشترک به عنوان باشد
یکی از فایل های ورودی

هنگامی که پیوند دهنده هنگام انجام یک غیر-با چنین وابستگی مواجه می شود
پیوند مشترک و غیرقابل جابجایی، به طور خودکار سعی در مکان یابی می کند
کتابخانه مشترک مورد نیاز و در صورت وجود آن را در پیوند قرار دهید
به صراحت گنجانده نشده است در چنین حالتی، -rpath-link انتخاب
اولین مجموعه دایرکتوری ها را برای جستجو مشخص می کند. در -rpath-link
گزینه ممکن است دنباله ای از نام دایرکتوری را مشخص کند
مشخص کردن لیستی از اسامی که با دو نقطه از هم جدا شده اند یا با ظاهر شدن
چندین بار.

این گزینه باید با احتیاط استفاده شود زیرا جستجو را لغو می کند
مسیری که ممکن است به سختی در یک کتابخانه مشترک کامپایل شده باشد. که در
در چنین حالتی می توان ناخواسته از یک متفاوت استفاده کرد
مسیر جستجو نسبت به پیوند دهنده زمان اجرا.

پیوند دهنده از مسیرهای جستجوی زیر برای مکان یابی مورد نیاز استفاده می کند
کتابخانه های مشترک:

1. هر دایرکتوری مشخص شده توسط -rpath-link گزینه.

2. هر دایرکتوری مشخص شده توسط -rpath گزینه ها. تفاوت
میان -rpath و -rpath-link این است که دایرکتوری ها توسط
-rpath گزینه ها در فایل اجرایی گنجانده شده و در آن استفاده می شود
زمان اجرا، در حالی که -rpath-link گزینه فقط در
زمان پیوند جستجوکردن -rpath در این راه فقط توسط
پیوند دهنده های بومی و پیوند دهنده های متقابل که پیکربندی شده اند
با --with-sysroot گزینه.

3. در یک سیستم ELF، برای پیوند دهنده های بومی، اگر -rpath و
-rpath-link از گزینه‌ها استفاده نمی‌شود، محتویات را جستجو کنید
متغیر محیطی "LD_RUN_PATH".

4. در SunOS، اگر -rpath گزینه استفاده نشده است، هر کدام را جستجو کنید
دایرکتوری های مشخص شده با استفاده از -L گزینه.

5. برای پیوند دهنده بومی، محتویات محیط را جستجو کنید
متغیر "LD_LIBRARY_PATH".

6. برای پیوند دهنده ELF بومی، دایرکتوری های موجود در "DT_RUNPATH" یا
"DT_RPATH" از یک کتابخانه مشترک برای مشترک جستجو می شود
کتابخانه های مورد نیاز آن ورودی های "DT_RPATH" نادیده گرفته می شوند اگر
ورودی های "DT_RUNPATH" وجود دارد.

7. دایرکتوری های پیش فرض، به طور معمول / lib و / usr / معاونت.

8. برای یک پیوند دهنده بومی در یک سیستم ELF، اگر فایل
/etc/ld.so.conf وجود دارد، فهرست دایرکتوری های موجود در آن
فایل.

اگر کتابخانه مشترک مورد نیاز پیدا نشد، پیوند دهنده صادر می شود
یک هشدار و با لینک ادامه دهید.

-به اشتراک گذاشته شده
-قابل اشتراک گذاری
یک کتابخانه مشترک ایجاد کنید. این در حال حاضر فقط در ELF پشتیبانی می شود،
پلتفرم های XCOFF و SunOS. در SunOS، پیوند دهنده به طور خودکار انجام می شود
یک کتابخانه مشترک ایجاد کنید اگر -e گزینه استفاده نمی شود و وجود دارد
نمادهای تعریف نشده در پیوند

--مرتب کردن-مشترک
--sort-common=صعودی
--sort-common=نزولی
این گزینه می گوید ld برای مرتب کردن نمادهای رایج بر اساس تراز در
ترتیب صعودی یا نزولی هنگامی که آنها را در
بخش های خروجی مناسب ترازهای نماد در نظر گرفته شده است
شانزده بایت یا بزرگتر، هشت بایت، چهار بایت، دو بایت و یک بایت
بایت این برای جلوگیری از شکاف بین نمادها به دلیل تراز است
محدودیت ها. اگر ترتیب مرتب سازی مشخص نشده باشد، نزولی است
سفارش فرض شده است

--sort-section=نام
این گزینه "SORT_BY_NAME" را در تمام بخش‌های عام اعمال می‌کند
الگوها در اسکریپت پیوند دهنده

--sort-section=تراز کردن
این گزینه "SORT_BY_ALIGNMENT" را در تمام بخش های عام اعمال می کند
الگوها در اسکریپت پیوند دهنده

-- تقسیم بر فایل[=اندازه]
مشابه -- تقسیم با تغییر مکان اما یک بخش خروجی جدید برای
هر فایل ورودی وقتی اندازه رسیده است اندازه اندازه پیش فرض 1 است
اگر داده نشود

--تقسیم-با-reloc[=تعداد دفعات مشاهده]
سعی می کند بخش های اضافی در فایل خروجی ایجاد کند تا خیر
بخش خروجی واحد در فایل شامل بیش از تعداد دفعات مشاهده
جابجایی ها این در هنگام تولید فایل های بزرگ قابل جابجایی مفید است
برای دانلود در هسته های زمان واقعی خاص با شی COFF
فرمت فایل؛ زیرا COFF نمی تواند بیش از 65535 را نشان دهد
جابجایی در یک بخش توجه داشته باشید که این کار نخواهد کرد
با فرمت های فایل شی که از بخش های دلخواه پشتیبانی نمی کنند.
پیوند دهنده بخش های ورودی جداگانه را برای آن تقسیم نمی کند
توزیع مجدد، بنابراین اگر یک بخش ورودی واحد بیش از
تعداد دفعات مشاهده جابجایی ها یک بخش خروجی حاوی این تعداد خواهد بود
جابجایی ها تعداد دفعات مشاهده مقدار پیش فرض 32768 است.

--آمار
محاسبه و نمایش آمار مربوط به عملکرد پیوند دهنده،
مانند زمان اجرا و استفاده از حافظه.

--sysroot=فهرست راهنما
استفاده کنید فهرست راهنما به عنوان محل sysroot، نادیده گرفته می شود
پیکربندی زمان پیش فرض این گزینه فقط توسط لینک دهنده ها پشتیبانی می شود
که با استفاده از آن پیکربندی شدند --with-sysroot.

- قالب سنتی
برای برخی از اهداف، خروجی از ld از جهاتی متفاوت است
خروجی برخی از پیوند دهنده های موجود این سوئیچ درخواست می کند ld به استفاده از
در عوض فرمت سنتی

به عنوان مثال، در SunOS، ld ورودی های تکراری در نماد را ترکیب می کند
میز رشته ای این می تواند اندازه یک فایل خروجی را با کامل کاهش دهد
اشکال زدایی اطلاعات تا بیش از 30 درصد متاسفانه SunOS
برنامه "dbx" نمی تواند برنامه حاصل را بخواند ("gdb" ندارد
مشکل). را - قالب سنتی سوئیچ می گوید ld برای ترکیب نشدن
ورودی های تکراری

--section-start=نام بخش=سازمان
بخشی را در فایل خروجی در آدرس مطلق داده شده قرار دهید
by سازمان. می توانید هر چند بار که لازم است از این گزینه استفاده کنید
چندین بخش را در خط فرمان قرار دهید. سازمان باید مجرد باشد
عدد صحیح هگزادسیمال؛ برای سازگاری با سایر پیوند دهنده ها، می توانید
پیشرو را حذف کنید 0x معمولاً با مقادیر هگزادسیمال همراه است.
توجه داشته باشید: هیچ فضای سفیدی بین آنها وجود ندارد نام بخشاز
علامت مساوی ("=") ، و سازمان.

-Tbss=سازمان
-Tdata=سازمان
-متن=سازمان
مثل --بخش-شروع، با ".bss"، ".data" یا ".text" به عنوان
نام بخش.

-Ttext-Segment=سازمان
هنگام ایجاد یک فایل اجرایی ELF، آدرس آن را تنظیم می کند
اولین بایت از بخش متن

-Trodata-segment=سازمان
هنگام ایجاد یک شیء اجرایی یا اشتراک گذاری شده ELF برای یک هدف که در آن
داده های فقط خواندنی در بخش خود جدا از
متن اجرایی، آدرس اولین بایت را تنظیم می کند
بخش داده فقط خواندنی

-Tldata-segment=سازمان
هنگام ایجاد یک شیء اجرایی یا اشتراک گذاری شده ELF برای رسانه x86-64
مدل حافظه، آدرس اولین بایت را تنظیم می کند
بخش داده

--unresolved-symbols=روش
نحوه برخورد با نمادهای حل نشده را تعیین کنید. چهار تا هست
مقادیر ممکن برای روش:

نادیده گرفتن-همه
هیچ نماد حل نشده ای را گزارش نکنید.

گزارش همه
همه نمادهای حل نشده را گزارش کنید. این پیش فرض است.

ignore-in-object-files
نمادهای حل نشده را که در به اشتراک گذاشته شده است گزارش دهید
کتابخانه ها، اما اگر از یک شی معمولی آمده اند، آنها را نادیده بگیرید
فایل های.

ignore-in-shared-libs
نمادهای حل نشده را گزارش کنید که از فایل های شیء معمولی می آیند،
اما اگر از کتابخانه های مشترک می آیند، آنها را نادیده بگیرید. این می تواند
هنگام ایجاد یک باینری پویا مفید باشد و مشخص است که
تمام کتابخانه های مشترکی که باید به آنها ارجاع داده شود، هستند
در خط فرمان پیوند دهنده گنجانده شده است.

رفتار کتابخانه های مشترک به تنهایی نیز می تواند باشد
کنترل شده توسط --[no-]allow-shlib-undefined گزینه.

به طور معمول پیوند دهنده برای هر یک پیام خطا ایجاد می کند
نماد حل نشده اما گزینه گزارش شده است --warn-un-solved-symbols
می تواند این را به یک هشدار تغییر دهد.

--dll-verbose
-- پرحرف[=عدد]
نمایش شماره نسخه برای ld و شبیه سازی های پیوند دهنده را فهرست کنید
پشتیبانی. نمایش فایل های ورودی که می توانند و نمی توانند باز شوند.
نمایش اسکریپت پیوند دهنده که توسط پیوند دهنده استفاده می شود. اگر اختیاری است
عدد آرگومان > 1، وضعیت نماد افزونه نیز نمایش داده خواهد شد.

--version-script=نسخه-اسکریپت فایل
نام اسکریپت نسخه را برای پیوند دهنده مشخص کنید. این هست
معمولاً هنگام ایجاد کتابخانه های مشترک برای تعیین موارد اضافی استفاده می شود
اطلاعاتی در مورد سلسله مراتب نسخه برای کتابخانه موجود
ایجاد شده. این گزینه فقط در پلتفرم های ELF به طور کامل پشتیبانی می شود
که از کتابخانه های مشترک پشتیبانی می کنند. دیدن نسخه. جزئی است
در پلتفرم‌های PE پشتیبانی می‌شود، که می‌توانند از اسکریپت‌های نسخه برای فیلتر کردن استفاده کنند
نمایان بودن نماد در حالت صادرات خودکار: هر نماد علامت گذاری شده است محلی in
اسکریپت نسخه صادر نخواهد شد.

-- هشدار - مشترک
هنگامی که یک نماد مشترک با یک نماد مشترک دیگر ترکیب می شود هشدار دهید
با تعریف نماد پیوند دهنده های یونیکس این امکان را تا حدودی درهم و برهم دارند
عمل کنید، اما لینک کننده ها در برخی از سیستم عامل های دیگر این کار را نمی کنند. این
گزینه به شما امکان می دهد مشکلات بالقوه را از ترکیب جهانی پیدا کنید
نمادها متأسفانه، برخی از کتابخانه های C از این روش استفاده می کنند، بنابراین شما
ممکن است هشدارهایی در مورد نمادها در کتابخانه ها و همچنین در داخل دریافت کند
برنامه های شما

سه نوع نماد جهانی وجود دارد که در اینجا توسط C نشان داده شده است
مثال ها:

INT i = 1;
تعریفی که در بخش داده های اولیه می رود
فایل خروجی.

بیرونی INT i;
یک مرجع تعریف نشده، که فضا را اختصاص نمی دهد. آنجا
باید یک تعریف یا یک نماد مشترک برای متغیر باشد
جایی

INT i;
یک نماد مشترک اگر فقط (یک یا چند) مشترک وجود داشته باشد
نمادهای یک متغیر، در ناحیه داده‌های بدون مقدار اولیه قرار می‌گیرد
از فایل خروجی پیوند دهنده چندین نماد مشترک را ادغام می کند
برای همان متغیر به یک نماد واحد. اگر آنها از
اندازه های مختلف، بزرگترین اندازه را انتخاب می کند. پیوند دهنده به a تبدیل می شود
در صورت وجود تعریف، نماد مشترک در یک اعلامیه
همان متغیر

La -- هشدار - مشترک گزینه می تواند پنج نوع هشدار ایجاد کند. هر یک
هشدار از یک جفت خط تشکیل شده است: خط اول نماد را توصیف می کند
به تازگی با آن مواجه شده است، و دومی نماد قبلی را توصیف می کند
با همین نام مواجه شد یکی یا هر دوی این دو نماد
یک نماد مشترک خواهد بود.

1. تبدیل نماد مشترک به مرجع، زیرا وجود دارد
در حال حاضر یک تعریف برای نماد.

( ): هشدار: مشترک از ` '
بر اساس تعریف نادیده گرفته شده است
( ): هشدار: در اینجا تعریف شده است

2. تبدیل یک نماد مشترک به مرجع، زیرا یک بعد
تعریف برای نماد مواجه می شود. این همان است
حالت قبل، با این تفاوت که نمادها در a مواجه می شوند
ترتیب مختلف

( ): هشدار: تعریف ` '
مشترک غالب
( ): هشدار: مشترک اینجاست

3. ادغام یک نماد مشترک با یک مشترک هم اندازه قبلی
سمبل.

( ): هشدار: چندگانه مشترک
از ` '
( ): هشدار: مشترک قبلی اینجاست

4. ادغام یک نماد مشترک با یک نماد مشترک بزرگتر قبلی.

( ): هشدار: مشترک از ` '
نادیده گرفته شده توسط مشترک بزرگتر
( ): هشدار: مشترک بزرگتر اینجاست

5. ادغام یک نماد مشترک با یک نماد مشترک کوچکتر قبلی.
این همان مورد قبلی است، با این تفاوت که نمادها
با ترتیب متفاوتی مواجه می شوند.

( ): هشدار: مشترک از ` '
نادیده گرفتن مشترک کوچکتر
( ): هشدار: مشترک کوچکتر اینجاست

--warn-constructors
در صورت استفاده از سازنده جهانی هشدار دهید. این فقط برای
چند فرمت فایل شی برای فرمت هایی مانند COFF یا ELF،
لینکر نمی تواند استفاده از سازنده های جهانی را تشخیص دهد.

--warn-multiple-gp
در صورت نیاز به چندین مقدار اشاره گر سراسری در خروجی هشدار دهید
فایل. این فقط برای برخی از پردازنده‌ها معنادار است، مانند
آلفا. به طور خاص، برخی از پردازنده ها ثابت های با ارزش زیادی را در آن قرار می دهند
یک بخش ویژه یک رجیستر ویژه (نشانگر جهانی) نقاط
به وسط این بخش، به طوری که ثابت ها می توانند بارگذاری شوند
به طور موثر از طریق یک حالت آدرس دهی نسبی ثبت پایه. از آنجا که
افست در حالت نسبی ثبت پایه ثابت و نسبتاً ثابت است
کوچک (به عنوان مثال، 16 بیت)، این حداکثر اندازه ثابت را محدود می کند
استخر. بنابراین، در برنامه های بزرگ، اغلب استفاده از آن ضروری است
چندین مقدار اشاره گر جهانی برای اینکه بتوانید همه را آدرس دهی کنید
ثابت های ممکن این گزینه باعث می شود اخطار داده شود
هر زمان که این مورد رخ دهد.

-- هشدار یک بار
فقط یک بار برای هر نماد تعریف نشده هشدار دهید، نه یک بار در هر
ماژول که به آن اشاره دارد.

--warn-section-align
اگر آدرس یک بخش خروجی به دلیل تغییر داده شود، هشدار دهید
هم ترازی. به طور معمول، تراز توسط یک ورودی تنظیم می شود
بخش. آدرس فقط در صورتی تغییر می کند که به صراحت نباشد
مشخص شده؛ یعنی اگر دستور SECTIONS a را مشخص نکند
آدرس شروع بخش

--warn-shared-textrel
اگر پیوند دهنده یک DT_TEXTREL را به یک شی مشترک اضافه کند، هشدار دهید.

--warn-alternate-em
اگر یک شی دارای کد ماشین ELF جایگزین است، هشدار دهید.

--warn-un-solved-symbols
اگر پیوند دهنده قرار است یک نماد حل نشده را گزارش کند (به
انتخاب - نمادهای حل نشده) معمولاً یک خطا ایجاد می کند.
این گزینه باعث می شود به جای آن یک هشدار ایجاد کند.

-- error-un-solved-symbols
این رفتار پیش‌فرض پیوند دهنده برای ایجاد خطا را بازیابی می‌کند
هنگامی که نمادهای حل نشده را گزارش می کند.

--کل-بایگانی
برای هر آرشیو ذکر شده در خط فرمان بعد از
--کل-بایگانی گزینه، شامل هر فایل شی در بایگانی در
پیوند، به جای جستجوی آرشیو برای شی مورد نیاز
فایل ها. این معمولاً برای تبدیل یک فایل آرشیو به اشتراک گذاری استفاده می شود
کتابخانه، که هر شی را مجبور می کند در نتیجه گنجانده شود
کتابخانه مشترک این گزینه ممکن است بیش از یک بار استفاده شود.

دو نکته هنگام استفاده از این گزینه از gcc: اول اینکه gcc نمی داند
در مورد این گزینه، بنابراین شما باید استفاده کنید -Wl،-کل-بایگانی. دومین،
استفاده را فراموش نکنید -Wl،-بدون-کل-بایگانی بعد از لیست شما
بایگانی، زیرا gcc لیست آرشیوهای خود را به شما اضافه می کند
پیوند دهید و ممکن است نخواهید این پرچم روی آنها نیز تأثیر بگذارد.

--wrap=نماد
استفاده از تابع wrapper برای نماد. هرگونه اشاره تعریف نشده به
نماد به "__wrap_" حل خواهد شدسمبل". هر تعریف نشده
ارجاع به "__واقعی_سمبل" حل خواهد شد تا نماد.

این می تواند برای ارائه یک پوشش برای عملکرد سیستم استفاده شود. را
تابع wrapper باید "__wrap_ نامیده شودسمبل". اگر بخواهد
تابع سیستم را فراخوانی کنید، باید "__real_" را فراخوانی کند.سمبل".

در اینجا یک مثال بی اهمیت است:

خالی *
__wrap_malloc (اندازه_t c)
{
printf ("malloc با %zu\n نامیده می شود"، c);
بازگشت __real_malloc (c)؛
}

اگر کد دیگری را با این فایل پیوند دهید با استفاده از --بسته بندی کردن از malloc، سپس همه
فراخوانی به "malloc" به جای آن تابع "__wrap_malloc" را فراخوانی می کند.
تماس با "__real_malloc" در "__wrap_malloc" واقعی را فرا خواهد خواند
تابع "malloc".

ممکن است بخواهید یک تابع "__real_malloc" نیز ارائه دهید، به طوری که
لینک های بدون --بسته بندی کردن گزینه موفق خواهد شد اگر این کار را انجام دهید، شما
نباید تعریف "__real_malloc" را در یک فایل قرار دهید
به عنوان "__wrap_malloc"؛ اگر این کار را انجام دهید، اسمبلر ممکن است تماس را حل کند
قبل از اینکه پیوند دهنده فرصتی داشته باشد آن را به "malloc" بپیچد.

--eh-frame-hdr
درخواست ایجاد بخش ".eh_frame_hdr" و ELF
سرصفحه بخش "PT_GNU_EH_FRAME".

--no-ld-generated-unwind-info
درخواست ایجاد اطلاعات بازگشایی ".eh_frame" برای پیوند دهنده ایجاد شده
بخش های کد مانند PLT. این گزینه به صورت پیش‌فرض در صورت پیوند دهنده روشن است
اطلاعات باز کردن تولید شده پشتیبانی می شود.

--enable-new-dtags
--غیرفعال کردن-new-dtags
این لینکر می تواند تگ های پویا جدید را در ELF ایجاد کند. اما بزرگتر
سیستم های ELF ممکن است آنها را درک نکنند. اگر مشخص کنید
--enable-new-dtags، تگ های پویا جدید در صورت نیاز ایجاد خواهند شد
و تگ های پویا قدیمی حذف خواهند شد. اگر مشخص کنید
--غیرفعال کردن-new-dtags، هیچ برچسب پویا جدیدی ایجاد نخواهد شد. توسط
به طور پیش فرض، تگ های پویا جدید ایجاد نمی شوند. توجه داشته باشید که آن ها
گزینه ها فقط برای سیستم های ELF در دسترس هستند.

--hash-size=عدد
اندازه پیش‌فرض جداول هش پیوند دهنده را روی یک عدد اول تنظیم کنید
نزدیک به عدد. افزایش این مقدار می تواند طول آن را کاهش دهد
زمانی که پیوند دهنده طول می کشد تا وظایف خود را انجام دهد، به هزینه
افزایش نیازهای حافظه پیوند دهنده به طور مشابه کاهش می دهد
این مقدار می تواند نیازهای حافظه را با هزینه کاهش دهد
سرعت.

--hash-style=سبک
نوع جدول(های) هش پیوند دهنده را تنظیم کنید. سبک می تواند "sysv" باشد
برای بخش کلاسیک ELF ".hash"، "gnu" برای سبک جدید گنو
بخش ".gnu.hash" یا "هر دو" برای هر دو ELF کلاسیک ".hash" و
جداول هش گنو ".gnu.hash" سبک جدید. پیش فرض "sysv" است.

--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
در پلتفرم‌های ELF، این گزینه‌ها نحوه اشکال‌زدایی بخش‌های DWARF را کنترل می‌کنند
با استفاده از zlib فشرده می شوند. --compress-debug-sections=none نمی کند
فشرده سازی بخش های اشکال زدایی DWARF. --compress-debug-sections=zlib-gnu
بخش های اشکال زدایی DWARF را فشرده می کند و نام بخش های اشکال زدایی را به نام آن تغییر می دهد
شروع با zdebug بجای اشکال زدایی.
--compress-debug-sections=zlib و
--compress-debug-sections=zlib-gabi فشرده سازی بخش های اشکال زدایی DWARF
با SHF_COMPRESSED از ELF ABI. رفتار پیش فرض متفاوت است
بسته به هدف درگیر و گزینه های پیکربندی استفاده شده
برای ساخت زنجیره ابزار پیش فرض را می توان با بررسی تعیین کرد
خروجی از پیوند دهنده --کمک گزینه.

--کاهش-سربار-حافظه
این گزینه مورد نیاز حافظه را در زمان اجرا ld کاهش می دهد
هزینه اتصال به سرعت این برای انتخاب قدیمی معرفی شد
الگوریتم O(n^2) برای تولید فایل نقشه پیوند، به جای جدید
الگوریتم O(n) که از حدود 40 درصد حافظه بیشتر برای ذخیره نمادها استفاده می کند.

یکی دیگر از اثرات سوئیچ تنظیم اندازه جدول هش پیش فرض است
به 1021، که مجدداً باعث صرفه جویی در حافظه به قیمت افزایش طول می شود
زمان اجرای لینکر با این حال اگر این کار انجام نمی شود - اندازه هش
سوئیچ استفاده شده است.

La --کاهش-سربار-حافظه سوئیچ نیز ممکن است برای فعال کردن استفاده شود
سایر معاوضه ها در نسخه های آینده پیوند دهنده.

--build-id
--build-id=سبک
درخواست ایجاد یک بخش یادداشت ELF ".note.gnu.build-id" یا
بخش COFF ".buildid". محتوای یادداشت منحصر به فرد است
بیت هایی که این فایل پیوندی را شناسایی می کنند. سبک می تواند "uuid" برای استفاده از 128 باشد
بیت های تصادفی، "sha1" برای استفاده از هش 160 بیتی SHA1 در هنجار
بخش هایی از محتویات خروجی، "md5" برای استفاده از هش 128 بیتی MD5 در
بخش های هنجاری محتوای خروجی یا "0xhexstring" به استفاده از
یک رشته بیت انتخاب شده به عنوان یک عدد زوج هگزادسیمال مشخص شده است
ارقام (کاراکترهای "-" و ":" بین جفت رقم نادیده گرفته می شوند).
If سبک حذف شده است، "sha1" استفاده می شود.

سبک های "md5" و "sha1" یک شناسه تولید می کنند که همیشه وجود دارد
در یک فایل خروجی یکسان یکسان است، اما در بین همه منحصر به فرد خواهد بود
فایل های خروجی غیر یکسان قرار نیست به عنوان یک مقایسه شود
چک جمع محتویات فایل یک فایل پیوندی ممکن است تغییر کند
بعداً توسط ابزارهای دیگر، اما شناسه ساخت بیت رشته شناسایی
فایل لینک شده اصلی تغییر نمی کند.

عبور از "هیچ" برای سبک تنظیم را از هر "--build-id" غیرفعال می کند
گزینه های قبلی در خط فرمان

لینکر PE i386 پشتیبانی می کند -به اشتراک گذاشته شده گزینه ای که باعث خروجی می شود
به جای یک کتابخانه معمولی، یک کتابخانه پیوندی پویا (DLL) باشد
قابل اجرا هنگام استفاده از این باید نام خروجی را "*.dll" بگذارید
گزینه. علاوه بر این، پیوند دهنده به طور کامل از استاندارد "*.def" پشتیبانی می کند.
فایل هایی که ممکن است مانند یک شی در خط فرمان لینکر مشخص شوند
فایل (در واقع، باید قبل از آرشیوهایی باشد که نمادها را از، به آنها صادر می کند
اطمینان حاصل کنید که آنها دقیقاً مانند یک فایل شی معمولی پیوند دارند).

علاوه بر گزینه های مشترک برای همه اهداف، i386 PE linker
از گزینه های اضافی خط فرمان که مختص i386 هستند پشتیبانی کنید
هدف PE گزینه هایی که مقادیر می گیرند ممکن است از مقادیر خود جدا شوند
با فاصله یا علامت تساوی.

--add-stdcall-نام مستعار
در صورت داده شدن، نمادهایی با پسوند stdcall (@nn) صادر خواهد شد
است و همچنین با پسوند stripped. [این گزینه مختص به
پورت هدفمند i386 PE پیوند دهنده]

--base-file پرونده
استفاده کنید پرونده به عنوان نام فایلی که در آن آدرس های پایه ذخیره می شود
از همه جابجایی های مورد نیاز برای تولید DLL با dlltool.
[این یک گزینه خاص i386 PE است]

--dll
به جای یک فایل اجرایی معمولی یک DLL ایجاد کنید. شما همچنین می توانید استفاده کنید
-به اشتراک گذاشته شده یا یک "LIBRARY" را در یک فایل ".def" مشخص کنید. [این
گزینه مخصوص پورت هدفمند i386 PE پیوند دهنده است]

--enable-long-section-names
- غیرفعال کردن نام‌های بخش طولانی
انواع PE فرمت شی COFF پسوندی را اضافه می کند که
اجازه استفاده از نام بخش های بیشتر از هشت کاراکتر را می دهد
حد طبیعی برای COFF. به طور پیش فرض، این نام ها فقط مجاز هستند
فایل‌های شی، زیرا تصاویر اجرایی کاملاً پیوندی، این را حمل نمی‌کنند
جدول رشته COFF برای پشتیبانی از نام های طولانی تر مورد نیاز است. به عنوان یک گنو
پسوند، امکان استفاده از آنها در تصاویر اجرایی وجود دارد
همچنین، یا (احتمالاً بیهوده!) آن را در شیء غیرمجاز کنید
فایل ها، با استفاده از این دو گزینه. تصاویر اجرایی تولید شده است
با این بخش طولانی نام کمی غیر استاندارد، حمل است
همانطور که یک جدول رشته ای را انجام می دهند، و ممکن است خروجی گیج کننده ای ایجاد کنند
با ابزارهای غیر گنو PE آگاه، مانند نمایشگر فایل و
دامپرها با این حال، GDB به استفاده از نام های بخش طولانی PE متکی است
برای یافتن بخش های اطلاعات اشکال زدایی Dwarf-2 در یک تصویر اجرایی
در زمان اجرا، و بنابراین اگر هیچ یک از گزینه ها در دستور مشخص نشده باشد-
خط ، ld نام بخش های طولانی را فعال می کند، پیش فرض را نادیده می گیرد و
وقتی متوجه وجود اشکال زدایی شود، از نظر فنی رفتار صحیحی دارد
اطلاعات در حین پیوند دادن یک تصویر اجرایی و عدم حذف
نمادها [این گزینه برای همه پورت های PE مورد نظر معتبر است
پیوند دهنده]

--enable-stdcall-fixup
--disable-stdcall-fixup
اگر پیوند نمادی پیدا کند که نتواند آن را حل کند، تلاش خواهد کرد
برای انجام "پیوند فازی" با جستجوی نماد تعریف شده دیگری که
فقط در قالب نام نماد متفاوت است (cdecl در مقابل stdcall)
و آن نماد را با پیوند دادن به مسابقه حل خواهد کرد. مثلا،
نماد تعریف نشده "_foo" ممکن است به تابع مرتبط باشد
"_foo@12" یا نماد تعریف نشده "_bar@16" ممکن است به
تابع "_bar". هنگامی که پیوند دهنده این کار را انجام می دهد، یک هشدار چاپ می کند،
از آنجایی که معمولاً باید پیوند داده نمی شد، اما گاهی اوقات وارد می شد
کتابخانه های تولید شده از dll های شخص ثالث ممکن است به این ویژگی نیاز داشته باشند
قابل استفاده باشد اگر مشخص کنید --enable-stdcall-fixup، این ویژگی است
به طور کامل فعال است و هشدارها چاپ نمی شوند. اگر مشخص کنید
--disable-stdcall-fixup، این ویژگی غیرفعال است و غیره
عدم تطابق به عنوان خطا در نظر گرفته می شود. [این گزینه خاص است
به پورت هدفمند i386 PE پیوند دهنده]

--پیشرو-تاکید
--------------------------
برای اکثر اهداف پیشوند نماد پیش فرض یک خط زیر است و است
در توضیحات هدف تعریف شده است. با این گزینه امکان پذیر است
غیرفعال/فعال کردن پیشوند نماد زیر خط پیش فرض.

--صادرات همه نمادها
اگر داده شود، تمام نمادهای سراسری در اشیاء برای ساختن یک DLL استفاده می شود
توسط DLL صادر خواهد شد. توجه داشته باشید که این حالت پیش فرض if است
در غیر این صورت هیچ نماد صادراتی وجود نخواهد داشت. وقتی نمادها هستند
صریحاً از طریق فایل های DEF صادر می شود یا به طور ضمنی از طریق صادر می شود
ویژگی های تابع، پیش فرض این است که هیچ چیز دیگری صادر نشود
مگر اینکه این گزینه داده شود. توجه داشته باشید که نمادهای "DllMain@12"،
"DllEntryPoint@0"، "DllMainCRTStartup@12"، و "impure_ptr"
به طور خودکار صادر نمی شود. همچنین، نمادهای وارد شده از دیگر
DLL ها مجددا صادر نمی شوند، همچنین نمادهایی که DLL را مشخص می کنند، دوباره صادر نمی شوند
چیدمان داخلی مانند آنهایی که با "_head_" شروع می شوند یا به پایان می رسند
با "_iname". علاوه بر این، هیچ نمادی از "libgcc"، "libstd++"،
"libmingw32" یا "crtX.o" صادر خواهد شد. نمادهایی که نام آنها
برای کمک با "__rtti_" یا "__builtin_" صادر نمی شود
با DLL های C++ در نهایت، لیست گسترده ای از cygwin- وجود دارد
نمادهای خصوصی که صادر نمی شوند (بدیهی است که این مورد در مورد اعمال می شود
هنگام ساختن DLL برای اهداف cygwin). این cygwin-exclude ها عبارتند از:
"_cygwin_dll_entry@12"، "_cygwin_crt0_common@8"،
"_cygwin_noncygwin_dll_entry@12"، "_fmode"، "_impure_ptr"،
"cygwin_attach_dll"، "cygwin_premain0"، "cygwin_premain1"،
"cygwin_premain2"، "cygwin_premain3"، و "environ". [این گزینه
مختص پورت هدفمند i386 PE پیوند دهنده است]

-- استثناء-نمادها نماد,نماد، ...
فهرستی از نمادها را مشخص می کند که نباید به صورت خودکار باشند
صادر می شود. نام نمادها ممکن است با کاما یا دو نقطه مشخص شود.
[این گزینه مخصوص پورت هدفمند PE i386 است
پیوند دهنده]

-- حذف-همه-نمادها
مشخص می کند هیچ نمادی نباید به طور خودکار صادر شود. [این
گزینه مخصوص پورت هدفمند i386 PE پیوند دهنده است]

---تراز کردن فایل
تراز فایل را مشخص کنید. بخش‌های موجود در فایل همیشه شروع می‌شوند
در آفست فایل که مضرب این عدد است. این پیش فرض است
به 512. [این گزینه مخصوص پورت i386 PE است
پیوند دهنده]

--پشته ذخیره
--پشته ذخیره,مرتکب شدن
تعداد بایت های حافظه ذخیره شده را مشخص کنید (و به صورت اختیاری
commit) به عنوان پشته برای این برنامه استفاده شود. پیش فرض 1 مگابایت است
رزرو شده، 4K متعهد است. [این گزینه مخصوص i386 PE است
پورت هدف پیوند دهنده]

---پایه تصویر ارزش
استفاده کنید ارزش به عنوان آدرس پایه برنامه یا dll شما. این است
پایین ترین مکان حافظه ای که در برنامه یا dll شما استفاده می شود
بارگذاری شده است. برای کاهش نیاز به جابجایی و بهبود عملکرد
از dll های شما، هر کدام باید یک آدرس پایه منحصر به فرد داشته باشند و نه
همپوشانی با هر dll دیگر. پیش فرض 0x400000 برای فایل های اجرایی است،
و 0x10000000 برای dll ها. [این گزینه مخصوص i386 PE است
پورت هدف پیوند دهنده]

--کشتن
اگر داده شود، پسوند stdcall (@nn) از نمادها حذف خواهد شد
قبل از اینکه صادر شوند [این گزینه مخصوص i386 PE است
پورت هدف پیوند دهنده]

--بزرگ-آدرس-آگاه
در صورت داده شدن، بیت مناسب در قسمت "ویژگی ها" از
هدر COFF برای نشان دادن پشتیبانی از این فایل اجرایی تنظیم شده است
آدرس های مجازی بیشتر از 2 گیگابایت این باید در استفاده شود
همراه با /3 گیگابایت یا /USERVA=ارزش سوئیچ مگابایت در
بخش "[سیستم های عامل]" از BOOT.INI. در غیر این صورت، این کمی
تاثیری ندارد [این گزینه مخصوص پورت های هدفمند PE است
پیوند دهنده]

--غیرفعال کردن-بزرگ-آدرس-آگاه
اثر قبلی را برمی گرداند --بزرگ-آدرس-آگاه گزینه.
این مفید است اگر --بزرگ-آدرس-آگاه همیشه توسط
درایور کامپایلر (به عنوان مثال Cygwin gcc) و اجرایی این کار را نمی کند
پشتیبانی از آدرس های مجازی بیشتر از 2 گیگابایت [این گزینه
مخصوص پورت های PE هدف پیوند دهنده است]

---تصویر-نسخه اصلی ارزش
شماره اصلی "نسخه تصویر" را تنظیم می کند. پیش فرض 1 است.
[این گزینه مخصوص پورت هدفمند PE i386 است
پیوند دهنده]

--major-os-نسخه ارزش
شماره اصلی "نسخه OS" را تنظیم می کند. پیش‌فرض 4 است. [این
گزینه مخصوص پورت هدفمند i386 PE پیوند دهنده است]

نسخه اصلی-زیر سیستم ارزش
شماره اصلی "نسخه زیرسیستم" را تنظیم می کند. پیش فرض 4 است.
[این گزینه مخصوص پورت هدفمند PE i386 است
پیوند دهنده]

----تصویر-نسخه ارزش
تعداد جزئی "نسخه تصویر" را تنظیم می کند. پیش‌فرض 0 است.
[این گزینه مخصوص پورت هدفمند PE i386 است
پیوند دهنده]

--minor-os-نسخه ارزش
تعداد جزئی "نسخه os" را تنظیم می کند. پیش‌فرض 0 است. [این
گزینه مخصوص پورت هدفمند i386 PE پیوند دهنده است]

----subsystem-نسخه جزئی ارزش
تعداد جزئی "نسخه زیرسیستم" را تنظیم می کند. پیش‌فرض 0 است.
[این گزینه مخصوص پورت هدفمند PE i386 است
پیوند دهنده]

--output-def پرونده
پیوند دهنده فایل را ایجاد می کند پرونده که حاوی یک فایل DEF خواهد بود
مربوط به DLL است که پیوند دهنده تولید می کند. این فایل DEF
(که باید "*.def" نامیده شود) ممکن است برای ایجاد یک واردات استفاده شود
کتابخانه با "dlltool" یا ممکن است به عنوان مرجع استفاده شود
نمادها به طور خودکار یا ضمنی صادر می شوند. [این گزینه است
مخصوص پورت هدفمند i386 PE پیوند دهنده]

--out-implib پرونده
پیوند دهنده فایل را ایجاد می کند پرونده که حاوی یک واردات خواهد بود
lib مربوط به DLL است که پیوند دهنده ایجاد می کند. این واردات
lib (که باید "*.dll.a" یا "*.a" نامیده شود ممکن است برای پیوند استفاده شود
مشتریان در برابر DLL تولید شده؛ این رفتار این امکان را فراهم می کند
برای رد شدن از مرحله ایجاد کتابخانه وارداتی جداگانه "dlltool". [این
گزینه مخصوص پورت هدفمند i386 PE پیوند دهنده است]

--enable-auto-image-base
--enable-auto-image-base=ارزش
به طور خودکار پایه تصویر برای DLL ها را انتخاب کنید، به صورت اختیاری شروع می شود
با پایه ارزش، مگر اینکه یکی با استفاده از "--image-base" مشخص شده باشد.
بحث و جدل. با استفاده از هش تولید شده از dllname برای ایجاد
پایه های تصویر منحصر به فرد برای هر DLL، برخوردهای درون حافظه و
از جابجایی هایی که می توانند اجرای برنامه را به تاخیر بیندازند اجتناب می شود. [این
گزینه مخصوص پورت هدفمند i386 PE پیوند دهنده است]

- غیرفعال کردن-پایه-تصویر خودکار
به طور خودکار یک پایه تصویر منحصر به فرد ایجاد نکنید. اگر وجود ندارد
پایگاه تصویر مشخص شده توسط کاربر ("--image-base") سپس از پلت فرم استفاده کنید
پیش فرض [این گزینه مخصوص پورت هدفمند i386 PE است
پیوند دهنده]

--dll-search-prefix رشته
هنگامی که به صورت پویا به یک dll بدون کتابخانه وارداتی پیوند می دهید، جستجو کنید
برای " .dll" در اولویت به "lib dll".
این رفتار تمایز آسان بین DLLهای ساخته شده برای
"زیر پلت فرم" های مختلف: بومی، cygwin، uwin، pw، و غیره برای
به عنوان مثال، DLL های cygwin معمولا از "--dll-search-prefix=cyg" استفاده می کنند.
[این گزینه مخصوص پورت هدفمند PE i386 است
پیوند دهنده]

--enable-auto-import
پیوند پیچیده "_symbol" به "__imp__symbol" را برای DATA انجام دهید
وارد کردن از DLL، و ایجاد نمادهای thunking لازم زمانی که
ساخت کتابخانه های وارداتی با این صادرات داده ها. توجه: استفاده از
پسوند "وارد کردن خودکار" باعث ایجاد بخش متنی می شود
فایل تصویری قابل نوشتن این با PE- مطابقت ندارد
مشخصات فرمت COFF توسط مایکروسافت منتشر شده است.

توجه - استفاده از پسوند «واردات خودکار» نیز باعث فقط خواندن می شود
داده‌هایی که معمولاً در بخش .rdata قرار می‌گیرند
به جای آن در بخش .data قرار می گیرد. این برای کار است
در مورد یک مشکل با const که در اینجا توضیح داده شده است:
http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

استفاده از "واردات خودکار" به طور کلی "فقط کار می کند" - اما گاهی اوقات شما
ممکن است این پیام را ببیند:

"متغیر " " را نمی توان به صورت خودکار وارد کرد. لطفاً این را بخوانید
مستندات ld's "--enable-auto-import" برای جزئیات."

این پیام زمانی رخ می دهد که برخی از (زیر) عبارت ها به یک آدرس دسترسی پیدا کنند
در نهایت با مجموع دو ثابت (جدول واردات Win32
فقط یک مورد را مجاز کنید). مواردی که ممکن است این اتفاق بیفتد شامل دسترسی است
به فیلدهای عضو متغیرهای ساختار وارد شده از یک DLL نیز
مانند استفاده از یک شاخص ثابت در یک متغیر آرایه وارد شده از a
DLL. هر متغیر چند کلمه ای (آرایه ها، ساختارها، long long و غیره) ممکن است
این شرایط خطا را فعال کنید. با این حال، صرف نظر از دقیق
نوع داده متغیر صادر شده متخلف، ld همیشه شناسایی خواهد شد
آن را صادر کرده و از آن خارج شوید.

راه های مختلفی برای رفع این مشکل، صرف نظر از این وجود دارد
نوع داده متغیر صادر شده:

یکی از راه ها استفاده از سوئیچ --enable-runtime-pseudo-reloc است. این ترک می کند
وظیفه تنظیم مراجع در کد مشتری برای زمان اجرا
محیط، بنابراین این روش تنها زمانی کار می کند که محیط زمان اجرا باشد
از این ویژگی پشتیبانی می کند.

راه حل دوم این است که یکی از «ثابت ها» را مجبور کنید a باشد
متغیر -- یعنی ناشناخته و در زمان کامپایل غیر بهینه است.
برای آرایه ها دو احتمال وجود دارد: الف) نمایه ساز (the
آدرس آرایه) یک متغیر، یا ب) شاخص "ثابت" a را بسازید
متغیر. بدین ترتیب:

نوع خارجی extern_array[];
آرایه_خارجی[1] -->
{ نوع فرار *t=extern_array; t[1] }

or

نوع خارجی extern_array[];
آرایه_خارجی[1] -->
{ volatile int t=1; آرایه_خارجی[t]}

برای ساختارها (و اکثر انواع داده های چند کلمه ای دیگر) تنها گزینه است
ساختن خود ساختار است (یا بلند، یا ...)
متغیر:

extern struct s extern_struct;
extern_struct.field -->
{ ساختار فرار s *t=&extern_struct; t->field }

or

extern long long extern_ll;
extern_ll -->
{ volatile long long * local_ll=&extern_ll; *local_ll }

روش سوم برای مقابله با این مشکل، رها کردن است
"واردات خودکار" برای نماد توهین‌آمیز و علامت گذاری آن با
"__declspec(dllimport)". با این حال، در عمل نیاز به استفاده دارد
compile-time #defines برای نشان دادن اینکه آیا در حال ساخت یک DLL هستید یا خیر،
ساخت کد مشتری که به DLL یا صرفاً پیوند می دهد
ساختن/پیوند دادن به کتابخانه ایستا. در انتخاب
بین روش های مختلف حل و فصل آدرس مستقیم با
مشکل جبران ثابت، شما باید دنیای واقعی معمولی را در نظر بگیرید
استفاده:

مقاله:

--فو.ه
extern int arr[];
--foo.c
#شامل "foo.h"
void main(int argc، char **argv){
printf("%d\n", arr[1]);
}

راه حل 1:

--فو.ه
extern int arr[];
--foo.c
#شامل "foo.h"
void main(int argc، char **argv){
/* این راه حل برای win32 و cygwin است. "بهینه سازی" نکنید */
فرار int *parr = arr;
printf("%d\n",parr[1]);
}

راه حل 2:

--فو.ه
/* توجه: صادرات خودکار فرض شده است (بدون __declspec(dllexport)) */
#if (تعریف شده(_WIN32) || تعریف شده(__CYGWIN__)) && \
!(تعریف شده(FOO_BUILD_DLL) || تعریف شده(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
# دیگر
#define FOO_IMPORT
# اندیف
خارجی FOO_IMPORT int arr[];
--foo.c
#شامل "foo.h"
void main(int argc، char **argv){
printf("%d\n", arr[1]);
}

راه چهارم برای جلوگیری از این مشکل، کدگذاری مجدد کتابخانه خود در آن است
استفاده از یک رابط کاربردی به جای یک رابط داده برای
متغیرهای توهین آمیز (مثلا set_foo() و get_foo() اکسسور
کارکرد). [این گزینه مخصوص پورت هدفمند i386 PE است
پیوند دهنده]

- غیرفعال کردن-وارد کردن خودکار
سعی نکنید پیوند پیچیده "_symbol" را به انجام دهید
"__imp__symbol" برای وارد کردن داده از DLL. [این گزینه است
مخصوص پورت هدفمند i386 PE پیوند دهنده]

--enable-runtime-pseudo-reloc
اگر کد شما حاوی عباراتی است که در --enable-auto-import توضیح داده شده است
بخش، یعنی واردات داده از DLL با افست غیر صفر، این است
سوئیچ یک بردار از «جابه‌جایی شبه زمان اجرا» ایجاد می‌کند که
می تواند توسط محیط زمان اجرا برای تنظیم ارجاعات به آن استفاده شود
داده ها در کد مشتری شما [این گزینه مخصوص i386 PE است
پورت هدف پیوند دهنده]

--disable-runtime-pseudo-reloc
جابجایی های کاذب برای واردات داده های افست غیر صفر ایجاد نکنید
از DLL ها [این گزینه مخصوص پورت هدفمند i386 PE است
پیوند دهنده]

--enable-extra-pe-debug
اطلاعات مربوط به اشکال زدایی اضافی مربوط به کوچک کردن نماد واردات خودکار را نشان دهید.
[این گزینه مخصوص پورت هدفمند PE i386 است
پیوند دهنده]

---تراز بخش
تراز بخش را تنظیم می کند. بخش ها در حافظه همیشه شروع می شوند
در آدرس هایی که مضربی از این عدد هستند. پیش فرض به
0x1000. [این گزینه مخصوص پورت هدفمند i386 PE است
پیوند دهنده]

--پشته ذخیره
--پشته ذخیره,مرتکب شدن
تعداد بایت های حافظه ذخیره شده را مشخص کنید (و به صورت اختیاری
commit) به عنوان پشته برای این برنامه استفاده شود. پیش فرض 2 مگابایت است
رزرو شده، 4K متعهد است. [این گزینه مخصوص i386 PE است
پورت هدف پیوند دهنده]

--زیر سیستم که
--زیر سیستم که:عمده
--زیر سیستم که:عمده.خردسال
زیرسیستمی را مشخص می کند که برنامه شما تحت آن اجرا می شود. را
ارزش های قانونی برای که عبارتند از "بومی"، "ویندوز"، "کنسول"، "posix"،
و "xbox". شما می توانید به صورت اختیاری نسخه زیرسیستم را نیز تنظیم کنید.
مقادیر عددی نیز برای آن پذیرفته شده است که. [این گزینه است
مخصوص پورت هدفمند i386 PE پیوند دهنده]

گزینه های زیر پرچم ها را در قسمت "DllCharacteristics" تنظیم می کنند
از هدر فایل PE: [این گزینه‌ها مختص PE هستند
پورت های پیوند دهنده]

---آنتروپی-va
تصویر با طرح بندی فضای آدرس 64 بیتی تصادفی سازگار است
(ASLR).

--دینامیک پایه
آدرس پایه تصویر ممکن است با استفاده از طرح فضای آدرس تغییر مکان دهد
تصادفی سازی (ASLR). این ویژگی با MS Windows معرفی شد
ویستا برای اهداف i386 PE.

--forceinteg
بررسی یکپارچگی کد اجرا می شود.

--nxcompat
تصویر با Data Execution Prevention سازگار است. این
ویژگی با MS Windows XP SP2 برای اهداف PE i386 معرفی شد.

-- بدون انزوا
اگرچه تصویر انزوا را درک می کند، تصویر را ایزوله نکنید.

--نه-سه
تصویر از SEH استفاده نمی کند. هیچ کنترل کننده SE نمی تواند از این قسمت فراخوانی شود
تصویر

--بدون اتصال
این تصویر را مقید نکنید.

--wdmdriver
درایور از مدل درایور MS Windows استفاده می کند.

--تساوار
تصویر از ترمینال سرور آگاه است.

--insert-timestamp
--no-insert-stamp
یک مهر زمانی واقعی را در تصویر درج کنید. این پیش فرض است
رفتار همانطور که با کد میراث مطابقت دارد و به این معنی است که تصویر
با ابزارهای اختصاصی دیگر کار خواهد کرد. مشکل با این
به طور پیش فرض این است که باعث می شود تصاویر کمی متفاوت باشند
هر بار که منابع یکسانی به هم مرتبط می شوند تولید می شود. گزینه
--no-insert-stamp می توان برای درج یک مقدار صفر برای
مهر زمانی، این تضمین می کند که باینری ها از یکسان تولید می شوند
منابع به طور یکسان مقایسه خواهند کرد.

هدف C6X uClinux از یک فرمت باینری به نام DSBT برای پشتیبانی استفاده می کند
کتابخانه های مشترک هر کتابخانه مشترک در سیستم باید یک
شاخص منحصر به فرد؛ همه فایل های اجرایی از اندیس 0 استفاده می کنند.

--dsbt-size اندازه
این گزینه تعداد ورودی ها را در DSBT جریان تنظیم می کند
کتابخانه اجرایی یا اشتراکی به اندازه. پیش فرض ایجاد یک است
جدول با 64 ورودی.

--dsbt-index شاخص
این گزینه شاخص DSBT فایل اجرایی فعلی یا اشتراکی را تنظیم می کند
کتابخانه به شاخص. پیش فرض 0 است که برای آن مناسب است
تولید فایل های اجرایی اگر یک کتابخانه مشترک با a ایجاد شود
شاخص DSBT 0، جابجایی های "R_C6000_DSBT_INDEX" در کپی می شوند
فایل خروجی

La --no-merge-exidx-entries سوئیچ ادغام را غیرفعال می کند
ورودی های exidx مجاور در اطلاعات باز کردن قاب.

پیوند دهنده های 68HC11 و 68HC12 از گزینه های خاصی برای کنترل پشتیبانی می کنند
نقشه سوئیچینگ بانک حافظه و تولید کد ترامپلاین.

-- بدون ترامپولین
این گزینه تولید ترامپولین را غیرفعال می کند. به طور پیش فرض a
ترامپولین برای هر تابع دور تولید می شود که استفاده از آن نامیده می شود
یک دستورالعمل "jsr" (این زمانی اتفاق می افتد که یک اشاره گر به یک تابع دور باشد
گرفته شده است).

--پنجره بانک نام
این گزینه به لینک دهنده نام ناحیه حافظه را نشان می دهد
در حافظه مشخصاتی که پنجره بانک حافظه را توصیف می کند.
سپس تعریف چنین منطقه ای توسط پیوند دهنده برای محاسبه استفاده می شود
صفحه بندی و آدرس ها در پنجره حافظه.

گزینه های زیر برای کنترل مدیریت GOT پشتیبانی می شوند
تولید در هنگام پیوند برای اهداف 68K.

--got=نوع
این گزینه به پیوند دهنده می گوید که از کدام طرح تولید GOT استفاده کند.
نوع باید یکی از تنها, منفی, چند رگه or هدف. برای
اطلاعات بیشتر به ورودی اطلاعات برای مراجعه کنید ld.

گزینه های زیر برای کنترل دستورالعمل microMIPS پشتیبانی می شوند
تولید هنگام پیوند برای اهداف MIPS.

--insn32
--no-insn32
این گزینه ها انتخاب دستورالعمل های microMIPS مورد استفاده در را کنترل می کنند
کد تولید شده توسط پیوند دهنده، مانند آن در PLT یا lazy
خرد صحافی، یا در حالت آرامش. اگر --insn32 استفاده می شود ، سپس
لینکر فقط از کدهای دستورالعمل 32 بیتی استفاده می کند. به طور پیش فرض یا اگر
--no-insn32 استفاده می شود، تمام رمزگذاری های دستورالعمل استفاده می شود، از جمله
16 بیتی در صورت امکان.

محیط زیست


شما می توانید رفتار را تغییر دهید ld با متغیرهای محیطی
"GNUTARGET"، "LDEMULATION" و "COLLECT_NO_DEMANGLE".

"GNUTARGET" فرمت شی فایل ورودی را در صورت عدم استفاده تعیین می کند -b
(یا مترادف آن --قالب). مقدار آن باید یکی از نام های BFD باشد
برای فرمت ورودی اگر "GNUTARGET" در محیط وجود نداشته باشد، ld
از قالب طبیعی هدف استفاده می کند. اگر "GNUTARGET" روی تنظیم شده باشد
"پیش فرض" سپس BFD سعی می کند با بررسی فرمت ورودی را کشف کند
فایل های ورودی باینری؛ این روش اغلب موفق است، اما پتانسیل وجود دارد
ابهامات، زیرا هیچ روشی برای اطمینان از عدد جادویی وجود ندارد
مورد استفاده برای تعیین فرمت های فایل شی منحصر به فرد است. با این حال
رویه پیکربندی برای BFD در هر سیستم، حالت معمولی را قرار می دهد
فرمت آن سیستم برای اولین بار در لیست جستجو، بنابراین ابهامات وجود دارد
به نفع کنوانسیون حل و فصل شد.

اگر از آن استفاده نکنید، "LDEMULATION" تقلید پیش فرض را تعیین می کند -m
گزینه. شبیه سازی می تواند بر جنبه های مختلف رفتار پیوند دهنده تأثیر بگذارد،
به خصوص اسکریپت پیوند دهنده پیش فرض. می توانید موارد موجود را لیست کنید
شبیه سازی با -- پرحرف or -V گزینه ها. اگر -m گزینه نیست
استفاده می شود، و متغیر محیطی "LDEMULATION" تعریف نشده است
شبیه سازی پیش فرض بستگی به نحوه پیکربندی پیوند دهنده دارد.

به طور معمول، پیوند دهنده به طور پیش فرض نمادها را جدا می کند. با این حال، اگر
"COLLECT_NO_DEMANGLE" در محیط تنظیم شده است، سپس به طور پیش فرض خواهد بود
برای اینکه نمادها را درهم نکشیم این متغیر محیطی در a استفاده می شود
روش مشابهی توسط برنامه بسته بندی پیوند دهنده "gcc". پیش فرض ممکن است
نادیده گرفته شود --دمانگل و -- بدون درهم ریختن گزینه.

از i686-linux-gnu-ld.bfd به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad