এটি হল i686-linux-gnu-ld কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
ld - GNU লিঙ্কার
সাইনোপিসিস
ld [অপশন] বস্তু ফাইল ...
বর্ণনাঃ
ld অনেকগুলি অবজেক্ট এবং আর্কাইভ ফাইল একত্রিত করে, তাদের ডেটা স্থানান্তরিত করে
এবং প্রতীক রেফারেন্স টাই আপ. সাধারণত একটি কম্পাইলিং শেষ ধাপ
প্রোগ্রাম চালানো হয় ld.
ld এর সুপারসেটে লেখা লিঙ্কার কমান্ড ভাষা ফাইল গ্রহণ করে
AT&T এর লিঙ্ক এডিটর কমান্ড ল্যাঙ্গুয়েজ সিনট্যাক্স, সুস্পষ্ট এবং প্রদান করতে
লিঙ্কিং প্রক্রিয়ার উপর সম্পূর্ণ নিয়ন্ত্রণ।
এই ম্যান পৃষ্ঠাটি কমান্ডের ভাষা বর্ণনা করে না; দেখুন ld প্রবেশ
কমান্ড ভাষা এবং অন্যান্য দিক সম্পর্কে সম্পূর্ণ বিশদ বিবরণের জন্য "তথ্য"-এ
GNU লিঙ্কারের।
এর এই সংস্করণ ld কাজ করার জন্য সাধারণ উদ্দেশ্য BFD লাইব্রেরি ব্যবহার করে
অবজেক্ট ফাইল। এই অনুমতি দেয় ld অবজেক্ট ফাইল পড়তে, একত্রিত করতে এবং লিখতে
বিভিন্ন ফরম্যাটে---উদাহরণস্বরূপ, COFF বা "a.out"। ভিন্ন
যেকোন উপলব্ধ বস্তু তৈরি করতে ফরম্যাটগুলিকে একসাথে সংযুক্ত করা যেতে পারে
ফাইল.
এর নমনীয়তা ছাড়াও, GNU লিঙ্কার অন্যের তুলনায় বেশি সহায়ক
ডায়াগনস্টিক তথ্য প্রদানে লিঙ্কার। অনেক লিঙ্কার পরিত্যাগ করে
একটি ত্রুটি সম্মুখীন হলে অবিলম্বে মৃত্যুদন্ড; যখন সম্ভব, ld
কার্যকর করা অব্যাহত রাখে, আপনাকে অন্যান্য ত্রুটি সনাক্ত করার অনুমতি দেয় (বা, কিছুতে
ক্ষেত্রে, ত্রুটি থাকা সত্ত্বেও একটি আউটপুট ফাইল পেতে)।
GNU লিঙ্কার ld পরিস্থিতি বিস্তৃত পরিসর কভার বোঝানো হয়, এবং
অন্যান্য লিঙ্কারের সাথে যতটা সম্ভব সামঞ্জস্যপূর্ণ হন। ফলস্বরূপ, আপনি আছে
তার আচরণ নিয়ন্ত্রণ করার জন্য অনেক পছন্দ।
বিকল্প
লিঙ্কার কমান্ড-লাইন বিকল্পের আধিক্য সমর্থন করে, কিন্তু বাস্তবে
তাদের মধ্যে কয়েকটি অনুশীলন কোনো বিশেষ প্রসঙ্গে ব্যবহৃত হয়। এই ক্ষেত্রে,
একটি ঘন ঘন ব্যবহার ld একটি স্ট্যান্ডার্ড ইউনিক্স অবজেক্ট ফাইল লিঙ্ক করা হয়
স্ট্যান্ডার্ড, সমর্থিত ইউনিক্স সিস্টেম। যেমন একটি সিস্টেমে, একটি ফাইল লিঙ্ক
"hello.o":
আমি করি /lib/crt0.o hello.o -lc
এই বলে ld নামে একটি ফাইল তৈরি করতে আউটপুট লিঙ্ক করার ফলাফল হিসাবে
ফাইল "/lib/crt0.o" এর সাথে "hello.o" এবং লাইব্রেরি "libc.a", যা
আদর্শ অনুসন্ধান ডিরেক্টরি থেকে আসবে। (এর আলোচনা দেখুন
দ্য -l নীচের বিকল্প।)
কিছু কমান্ড-লাইন বিকল্প ld যে কোনো সময়ে নির্দিষ্ট করা যেতে পারে
কমান্ড লাইন। যাইহোক, বিকল্পগুলি যা ফাইলগুলিকে উল্লেখ করে, যেমন -l or
-T, বিকল্পটি যে বিন্দুতে প্রদর্শিত হবে সেখানে ফাইলটি পড়তে হবে
কমান্ড লাইনে, অবজেক্ট ফাইল এবং অন্যান্য ফাইলের সাথে সম্পর্কিত
বিকল্প একটি ভিন্ন যুক্তি সঙ্গে নন-ফাইল বিকল্প পুনরাবৃত্তি হবে
হয় আর কোন প্রভাব নেই, অথবা পূর্বের ঘটনাগুলিকে ওভাররাইড করে (সেগুলি
কমান্ড লাইনের আরও বাম দিকে) সেই বিকল্পের। বিকল্প যা
অর্থপূর্ণভাবে উল্লেখ করা হয়েছে একাধিকবার উল্লেখ করা হয়েছে
নীচের বর্ণনা.
অ-বিকল্প আর্গুমেন্ট হল অবজেক্ট ফাইল বা আর্কাইভ যা হতে হবে
একত্রে সম্পর্কিত. তারা অনুসরণ করতে পারে, পূর্বে হতে পারে বা এর সাথে মিশে যেতে পারে
কমান্ড-লাইন অপশন, একটি অবজেক্ট ফাইল আর্গুমেন্ট নাও হতে পারে
একটি বিকল্প এবং তার যুক্তির মধ্যে স্থাপন করা হয়েছে।
সাধারণত লিঙ্কারটি কমপক্ষে একটি অবজেক্ট ফাইলের সাথে আহ্বান করা হয় তবে আপনি
ব্যবহার করে বাইনারি ইনপুট ফাইলের অন্যান্য ফর্ম নির্দিষ্ট করতে পারেন -l, -R, এবং
স্ক্রিপ্ট কমান্ড ভাষা। যদি না। বাইনারি ইনপুট ফাইল সব হয়
নির্দিষ্ট করা হয়েছে, লিঙ্কার কোনো আউটপুট তৈরি করে না এবং ইস্যু করে
বার্তা না ইনপুট নথি পত্র.
যদি লিঙ্কার একটি অবজেক্ট ফাইলের বিন্যাস চিনতে না পারে তবে এটি করবে
অনুমান করুন যে এটি একটি লিঙ্কার স্ক্রিপ্ট। একটি স্ক্রিপ্ট এই ভাবে নির্দিষ্ট
লিঙ্কের জন্য ব্যবহৃত প্রধান লিঙ্কার স্ক্রিপ্টকে বৃদ্ধি করে (হয় ডিফল্ট
লিঙ্কার স্ক্রিপ্ট বা ব্যবহার করে নির্দিষ্ট করা -T) এই বৈশিষ্ট্য অনুমতি দেয়
একটি ফাইলের সাথে লিঙ্ক করার জন্য লিঙ্কার যা একটি বস্তু বা একটি বলে মনে হয়
সংরক্ষণাগার, কিন্তু আসলে নিছক কিছু প্রতীক মান, বা ব্যবহার সংজ্ঞায়িত করে
অন্যান্য বস্তু লোড করতে "INPUT" বা "GROUP"। এর মধ্যে একটি স্ক্রিপ্ট উল্লেখ করা
উপায় শুধুমাত্র অতিরিক্ত কমান্ড সহ প্রধান লিঙ্কার স্ক্রিপ্ট বৃদ্ধি
মূল স্ক্রিপ্টের পরে স্থাপন করা; ব্যবহার -T ডিফল্ট প্রতিস্থাপন করার বিকল্প
লিঙ্কার স্ক্রিপ্ট সম্পূর্ণভাবে, কিন্তু "INSERT" কমান্ডের প্রভাব নোট করুন।
বিকল্পগুলির জন্য যাদের নাম একটি একক অক্ষর, বিকল্প আর্গুমেন্ট আবশ্যক
হয় হোয়াইটস্পেস হস্তক্ষেপ ছাড়া বিকল্প চিঠি অনুসরণ করুন, অথবা হতে
অবিলম্বে যে বিকল্প অনুসরণ পৃথক যুক্তি হিসাবে দেওয়া
তাদের প্রয়োজন।
বিকল্পগুলির জন্য যাদের নাম একাধিক অক্ষর, হয় এক ড্যাশ বা দুটি
বিকল্পের নামের আগে যেতে পারে; উদাহরণ স্বরূপ, - ট্রেস-চিহ্ন এবং
-- ট্রেস-চিহ্ন সমতুল্য নোট---এতে একটি ব্যতিক্রম আছে
নিয়ম. ছোট হাতের 'ও' ক্যান দিয়ে শুরু হওয়া একাধিক অক্ষর বিকল্প
শুধুমাত্র দুটি ড্যাশ দ্বারা আগে হতে হবে. এই সঙ্গে বিভ্রান্তি কমাতে হয়
-o বিকল্প তাই যেমন -অম্যাজিক আউটপুট ফাইলের নাম সেট করে জাদু
যেহেতু --অম্যাজিক আউটপুটে NMAGIC পতাকা সেট করে।
একাধিক-অক্ষরের বিকল্পগুলির আর্গুমেন্টগুলিকে হয় থেকে আলাদা করতে হবে
একটি সমান চিহ্ন দ্বারা বিকল্প নাম, অথবা পৃথক আর্গুমেন্ট হিসাবে দেওয়া হবে
অবিলম্বে তাদের প্রয়োজন যে বিকল্প অনুসরণ. উদাহরণ স্বরূপ,
-- ট্রেস-চিহ্ন foo বিন্যাস এবং --trace-symbol=foo সমতুল্য অনন্য
একাধিক-অক্ষরের বিকল্পগুলির নামের সংক্ষিপ্ত রূপগুলি গ্রহণ করা হয়।
দ্রষ্টব্য---যদি লিঙ্কারটি একটি কম্পাইলার ড্রাইভারের মাধ্যমে পরোক্ষভাবে আহ্বান করা হয়
(যেমন জিসিসি) তারপর সমস্ত লিঙ্কার কমান্ড লাইন বিকল্পগুলি প্রিফিক্স করা উচিত
by -ডব্লিউএল, (বা নির্দিষ্ট কম্পাইলার ড্রাইভারের জন্য যা উপযুক্ত)
এটার মত:
gcc -Wl, -start-group foo.o bar.o -Wl,--শেষ-গ্রুপ
এটি গুরুত্বপূর্ণ, কারণ অন্যথায় কম্পাইলার ড্রাইভার প্রোগ্রাম হতে পারে
নিঃশব্দে লিঙ্কার বিকল্পগুলি বাদ দিন, যার ফলে একটি খারাপ লিঙ্ক। বিভ্রান্তি
বিকল্পগুলি পাস করার সময়ও দেখা দিতে পারে যার জন্য a এর মাধ্যমে মান প্রয়োজন
ড্রাইভার, বিকল্প এবং আর্গুমেন্টের মধ্যে একটি স্পেস ব্যবহার করার জন্য একটি হিসাবে কাজ করে
বিভাজক, এবং ড্রাইভারকে শুধুমাত্র লিঙ্কারের বিকল্পটি পাস করার কারণ করে
এবং কম্পাইলার আর্গুমেন্ট. এই ক্ষেত্রে, এটি ব্যবহার করা সহজ
একক- এবং বহু-অক্ষর উভয় বিকল্পের যোগ করা ফর্ম, যেমন:
gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map
এখানে গৃহীত জেনেরিক কমান্ড লাইন সুইচগুলির একটি টেবিল রয়েছে
GNU লিঙ্কার:
@ফাইল
থেকে কমান্ড লাইন বিকল্প পড়ুন ফাইল. পঠিত বিকল্প সন্নিবেশ করা হয়
মূল @ এর জায়গায়ফাইল বিকল্প। যদি ফাইল বিদ্যমান নেই, বা
পড়া যাবে না, তাহলে বিকল্পটিকে আক্ষরিক অর্থে বিবেচনা করা হবে, এবং নয়
সরানো হয়েছে।
বিকল্পগুলি ফাইল হোয়াইটস্পেস দ্বারা পৃথক করা হয়। একটি সাদা স্থান
অক্ষর সমগ্র ঘিরে একটি বিকল্প অন্তর্ভুক্ত করা যেতে পারে
একক বা ডবল উদ্ধৃতিতে বিকল্প। যেকোনো চরিত্র (সহ
একটি ব্যাকস্ল্যাশ) অক্ষরটির উপসর্গ দিয়ে অন্তর্ভুক্ত করা যেতে পারে
ব্যাকস্ল্যাশ সহ অন্তর্ভুক্ত। দ্য ফাইল নিজেই অতিরিক্ত থাকতে পারে
@ফাইল বিকল্প; এই ধরনের যেকোনো বিকল্প পুনরাবৃত্তিমূলকভাবে প্রক্রিয়া করা হবে।
-a শব্দ
এই বিকল্পটি HP/UX সামঞ্জস্যের জন্য সমর্থিত। দ্য শব্দ
যুক্তি স্ট্রিং এক হতে হবে সংরক্ষণাগার, ভাগ, বা ডিফল্ট.
-আর্কাইভ কার্যকরীভাবে এর সমতুল্য -বস্ট্যাটিক, এবং অন্য দুটি
কীওয়ার্ডগুলি কার্যকরীভাবে এর সমতুল্য -বিডাইনামিক. এই বিকল্প হতে পারে
যেকোনো সংখ্যক বার ব্যবহার করা হবে।
-- নিরীক্ষা অডিটলিব
যোগ করে অডিটলিব ডায়নামিক বিভাগের "DT_AUDIT" এন্ট্রিতে।
অডিটলিব অস্তিত্বের জন্য পরীক্ষা করা হয় না, বা এটি ব্যবহার করবে না
DT_SONAME লাইব্রেরিতে নির্দিষ্ট করা হয়েছে। যদি একাধিকবার উল্লেখ করা হয়
"DT_AUDIT"-এ অডিট ইন্টারফেসের একটি কোলন আলাদা করা তালিকা থাকবে
ব্যবহার করা. যদি লিঙ্কার একটি অডিট এন্ট্রি সহ একটি বস্তু খুঁজে পায়
ভাগ করা লাইব্রেরিগুলির জন্য অনুসন্ধান, এটি একটি সংশ্লিষ্ট যোগ করবে
আউটপুট ফাইলে "DT_DEPAUDIT" এন্ট্রি। এই বিকল্প শুধুমাত্র
RTLD-অডিট ইন্টারফেস সমর্থনকারী ELF প্ল্যাটফর্মে অর্থবহ।
-A স্থাপত্য
--স্থাপত্য =স্থাপত্য
বর্তমান রিলিজে ld, এই বিকল্প শুধুমাত্র জন্য দরকারী
ইন্টেল 960 স্থাপত্য পরিবার। তার মধ্যে ld কনফিগারেশন,
স্থাপত্য যুক্তি বিশেষ আর্কিটেকচার চিহ্নিত করে
960 পরিবার, কিছু সুরক্ষা সক্রিয় করে এবং সংরক্ষণাগার পরিবর্তন করে-
লাইব্রেরি অনুসন্ধান পথ।
এর ভবিষ্যত রিলিজ ld অন্যান্য জন্য অনুরূপ কার্যকারিতা সমর্থন করতে পারে
স্থাপত্য পরিবার।
-b ছক পূরণ করা
--ফরম্যাট=ছক পূরণ করা
ld একাধিক ধরনের অবজেক্ট ফাইল সমর্থন করার জন্য কনফিগার করা যেতে পারে।
যদি তোমার ld এই ভাবে কনফিগার করা হয়, আপনি ব্যবহার করতে পারেন -b বিকল্প
ইনপুট অবজেক্ট ফাইলগুলির জন্য বাইনারি বিন্যাস নির্দিষ্ট করুন যা এটি অনুসরণ করে
কমান্ড লাইনে বিকল্প। এমনকি যখন ld সমর্থন করার জন্য কনফিগার করা হয়েছে
বিকল্প অবজেক্ট ফরম্যাট, আপনাকে সাধারণত এটি নির্দিষ্ট করতে হবে না,
as ld একটি ডিফল্ট ইনপুট বিন্যাস হিসাবে আশা কনফিগার করা উচিত
প্রতিটি মেশিনে সবচেয়ে সাধারণ বিন্যাস। ছক পূরণ করা একটি পাঠ্য স্ট্রিং,
BFD লাইব্রেরি দ্বারা সমর্থিত একটি নির্দিষ্ট বিন্যাসের নাম।
(আপনি উপলব্ধ বাইনারি ফরম্যাটের সাথে তালিকা করতে পারেন objdump -i.)
আপনি এই বিকল্পটি ব্যবহার করতে চাইতে পারেন যদি আপনি একটি ফাইলের সাথে লিঙ্ক করছেন
অস্বাভাবিক বাইনারি বিন্যাস। আপনিও ব্যবহার করতে পারেন -b ফরম্যাট পরিবর্তন করতে
স্পষ্টভাবে (বিভিন্ন ফরম্যাটের অবজেক্ট ফাইল লিঙ্ক করার সময়), দ্বারা
সুদ্ধ -b ছক পূরণ করা প্রতিটি গ্রুপ অবজেক্ট ফাইলের আগে a
বিশেষ বিন্যাস।
ডিফল্ট বিন্যাস এনভায়রনমেন্ট ভেরিয়েবল থেকে নেওয়া হয়
"GNUTARGET"।
আপনি একটি স্ক্রিপ্ট থেকে ইনপুট বিন্যাস সংজ্ঞায়িত করতে পারেন, ব্যবহার করে
কমান্ড "টার্গেট";
-c এমআরআই-কমান্ডফাইল
--mri-script=এমআরআই-কমান্ডফাইল
এমআরআই দ্বারা উত্পাদিত লিঙ্কারগুলির সাথে সামঞ্জস্যের জন্য, ld স্ক্রিপ্ট গ্রহণ করে
একটি বিকল্প, সীমাবদ্ধ কমান্ড ভাষায় লেখা ফাইল,
GNU ld-এর MRI সামঞ্জস্যপূর্ণ স্ক্রিপ্ট ফাইল বিভাগে বর্ণনা করা হয়েছে
ডকুমেন্টেশন বিকল্পের সাথে এমআরআই স্ক্রিপ্ট ফাইলগুলি প্রবর্তন করুন -c; ব্যবহার
দ্য -T সাধারণ-উদ্দেশ্যে লেখা লিঙ্কার স্ক্রিপ্ট চালানোর বিকল্প
ld স্ক্রিপ্টিং ভাষা. যদি এমআরআই-সিএমডিফাইল এটির অস্তিত্ব নেই, ld খুজে
এটি যে কোনো দ্বারা নির্দিষ্ট ডিরেক্টরিতে -L অপশন।
-d
-ডিসি
-ডিপি এই তিনটি বিকল্প সমতুল্য; একাধিক ফর্ম সমর্থিত হয়
অন্যান্য লিঙ্কারের সাথে সামঞ্জস্যের জন্য। তারা সাধারণের জন্য স্থান বরাদ্দ করে
প্রতীকগুলি এমনকি যদি একটি স্থানান্তরযোগ্য আউটপুট ফাইল নির্দিষ্ট করা হয় (এর সাথে -r).
স্ক্রিপ্ট কমান্ড "FORCE_COMMON_ALLOCATION" একই প্রভাব আছে।
-- depaudit অডিটলিব
-P অডিটলিব
যোগ করে অডিটলিব ডায়নামিক বিভাগের "DT_DEPAUDIT" এন্ট্রিতে।
অডিটলিব অস্তিত্বের জন্য পরীক্ষা করা হয় না, বা এটি ব্যবহার করবে না
DT_SONAME লাইব্রেরিতে নির্দিষ্ট করা হয়েছে। যদি একাধিকবার উল্লেখ করা হয়
"DT_DEPAUDIT"-এ অডিটের একটি কোলন আলাদা করা তালিকা থাকবে
ব্যবহার করার জন্য ইন্টারফেস। এই বিকল্পটি শুধুমাত্র ELF প্ল্যাটফর্মে অর্থবহ
rtld-অডিট ইন্টারফেস সমর্থন করে। -P বিকল্পের জন্য প্রদান করা হয়
সোলারিস সামঞ্জস্য।
-e প্রবেশ
--প্রবেশ=প্রবেশ
ব্যবহার প্রবেশ আপনার কার্য সম্পাদন শুরু করার জন্য সুস্পষ্ট প্রতীক হিসাবে
প্রোগ্রাম, ডিফল্ট এন্ট্রি পয়েন্টের পরিবর্তে। যদি না থাকে
নাম দেওয়া প্রতীক প্রবেশ, লিঙ্কার পার্স করার চেষ্টা করবে প্রবেশ সংখ্যা হিসাবে,
এবং এটি এন্ট্রি ঠিকানা হিসাবে ব্যবহার করুন (সংখ্যাটি ব্যাখ্যা করা হবে
বেস 10 এ; আপনি একটি নেতৃস্থানীয় ব্যবহার করতে পারেন 0x বেস 16, বা একটি নেতৃস্থানীয় জন্য 0
বেস 8 এর জন্য)।
-- বাদ-libs liberal এর সংক্ষিপ্ত রূপ,liberal এর সংক্ষিপ্ত রূপ...
আর্কাইভ লাইব্রেরির একটি তালিকা নির্দিষ্ট করে যেখান থেকে চিহ্ন থাকা উচিত নয়
স্বয়ংক্রিয়ভাবে রপ্তানি করা হবে। লাইব্রেরির নামগুলি দ্বারা সীমাবদ্ধ করা যেতে পারে
কমা বা কোলন। "--exclude-libs ALL" উল্লেখ করলে চিহ্ন বাদ পড়ে
স্বয়ংক্রিয় রপ্তানি থেকে সমস্ত সংরক্ষণাগার লাইব্রেরিতে। এই বিকল্প হয়
শুধুমাত্র লিঙ্কারের i386 PE টার্গেটেড পোর্ট এবং এর জন্য উপলব্ধ
ELF টার্গেটেড পোর্ট। i386 PE-এর জন্য, প্রতীকগুলি স্পষ্টভাবে a তে তালিকাভুক্ত
.def ফাইল এখনও রপ্তানি করা হয়, এই বিকল্প নির্বিশেষে. ELF এর জন্য
টার্গেটেড পোর্ট, এই বিকল্প দ্বারা প্রভাবিত চিহ্ন হিসাবে বিবেচিত হবে
গোপন.
বাদ-মডিউল-এর জন্য-ইমপ্লিব মডিউল,মডিউল...
অবজেক্ট ফাইল বা আর্কাইভ সদস্যদের একটি তালিকা নির্দিষ্ট করে, যা থেকে
প্রতীকগুলি স্বয়ংক্রিয়ভাবে রপ্তানি করা উচিত নয়, তবে যা হওয়া উচিত
আমদানি লাইব্রেরিতে পাইকারি অনুলিপি সময় উৎপন্ন হচ্ছে
লিঙ্ক মডিউল নাম কমা বা কোলন দ্বারা সীমাবদ্ধ করা যেতে পারে, এবং
দ্বারা ব্যবহৃত ফাইলের নামের সাথে হুবহু মেলে ld ফাইল খুলতে; জন্য
আর্কাইভ সদস্য, এটি কেবল সদস্যের নাম, কিন্তু বস্তুর জন্য
তালিকাভুক্ত নামের ফাইলগুলিকে অবশ্যই অন্তর্ভুক্ত করতে হবে এবং যেকোনো পথের সাথে মেলে
লিঙ্কারের কমান্ড-লাইনে ইনপুট ফাইলটি নির্দিষ্ট করতে ব্যবহৃত হয়। এই
বিকল্পটি শুধুমাত্র i386 PE টার্গেটেড পোর্টের জন্য উপলব্ধ
লিঙ্কার একটি .def ফাইলে স্পষ্টভাবে তালিকাভুক্ত প্রতীকগুলি এখনও রয়েছে৷
রপ্তানি, এই বিকল্প নির্বিশেষে.
-E
--রপ্তানি-গতিশীল
--নো-রপ্তানি-গতিশীল
একটি গতিশীলভাবে সংযুক্ত এক্সিকিউটেবল তৈরি করার সময়, ব্যবহার করে -E পছন্দ
অথবা --রপ্তানি-গতিশীল বিকল্পটি লিঙ্কারকে সমস্ত চিহ্ন যোগ করতে দেয়
গতিশীল প্রতীক টেবিলে। ডায়নামিক সিম্বল টেবিল হল সেট
চিহ্নগুলির যা রান টাইমে গতিশীল বস্তু থেকে দৃশ্যমান।
আপনি যদি এই বিকল্পগুলির একটি ব্যবহার না করেন (বা ব্যবহার করুন
--নো-রপ্তানি-গতিশীল ডিফল্ট আচরণ পুনরুদ্ধার করার বিকল্প), the
ডায়নামিক সিম্বল টেবিলে সাধারণত শুধুমাত্র সেই চিহ্নগুলো থাকবে যা
লিঙ্কে উল্লিখিত কিছু গতিশীল বস্তু দ্বারা উল্লেখ করা হয়।
আপনি যদি একটি গতিশীল বস্তু লোড করতে "dlopen" ব্যবহার করেন যা উল্লেখ করতে হবে
প্রোগ্রাম দ্বারা সংজ্ঞায়িত চিহ্নগুলিতে ফিরে যান, অন্য কিছুর পরিবর্তে
ডায়নামিক অবজেক্ট, তারপরে আপনাকে সম্ভবত এই বিকল্পটি ব্যবহার করতে হবে যখন
প্রোগ্রাম নিজেই লিঙ্ক.
আপনি কি প্রতীক হওয়া উচিত তা নিয়ন্ত্রণ করতে ডায়নামিক তালিকা ব্যবহার করতে পারেন
আউটপুট বিন্যাস এটি সমর্থন করলে গতিশীল প্রতীক টেবিলে যোগ করা হয়।
এর বর্ণনা দেখুন --ডাইনামিক-তালিকা.
মনে রাখবেন এই বিকল্পটি ELF টার্গেটেড পোর্টের জন্য নির্দিষ্ট। পিই
লক্ষ্যগুলি একটি DLL থেকে সমস্ত প্রতীক রপ্তানি করতে একটি অনুরূপ ফাংশন সমর্থন করে
বা EXE; এর বর্ণনা দেখুন --রপ্তানি-সমস্ত-প্রতীক নিচে.
-ইবি বড়-এন্ডিয়ান অবজেক্ট লিঙ্ক করুন। এটি ডিফল্ট আউটপুট বিন্যাসকে প্রভাবিত করে।
-ইএল লিটল-এন্ডিয়ান অবজেক্ট লিঙ্ক করুন। এটি ডিফল্ট আউটপুটকে প্রভাবিত করে
বিন্যাস।
-f নাম
--সহায়ক=নাম
একটি ELF ভাগ করা বস্তু তৈরি করার সময়, অভ্যন্তরীণ DT_AUXILIARY সেট করুন৷
নির্দিষ্ট নামের ক্ষেত্র। এটি গতিশীল লিঙ্কারকে বলে যে
ভাগ করা বস্তুর প্রতীক টেবিল একটি হিসাবে ব্যবহার করা উচিত
ভাগ করা বস্তুর প্রতীক টেবিলে সহায়ক ফিল্টার নাম.
যদি আপনি পরে এই ফিল্টার অবজেক্টের বিরুদ্ধে একটি প্রোগ্রাম লিঙ্ক করেন, তাহলে, কখন
আপনি প্রোগ্রামটি চালান, ডায়নামিক লিঙ্কারটি DT_AUXILIARY দেখতে পাবে
ক্ষেত্র যদি ডায়নামিক লিঙ্কার ফিল্টার থেকে কোনো প্রতীক সমাধান করে
অবজেক্ট, এটি প্রথমে পরীক্ষা করবে যে এর মধ্যে একটি সংজ্ঞা আছে কিনা
ভাগ করা বস্তু নাম. যদি একটি থাকে তবে এর পরিবর্তে এটি ব্যবহার করা হবে
ফিল্টার অবজেক্টের সংজ্ঞা। ভাগ করা বস্তু নাম প্রয়োজন
অস্তিত্ব নেই. এভাবে শেয়ার করা অবজেক্ট নাম একটি প্রদান করতে ব্যবহার করা যেতে পারে
নির্দিষ্ট ফাংশন বিকল্প বাস্তবায়ন, সম্ভবত জন্য
ডিবাগিং বা মেশিন নির্দিষ্ট কর্মক্ষমতা জন্য.
এই বিকল্পটি একাধিকবার উল্লেখ করা যেতে পারে। DT_AUXILIARY
এন্ট্রিগুলি সেই ক্রমে তৈরি করা হবে যা তারা তে প্রদর্শিত হবে
কমান্ড লাইন
-F নাম
--ফিল্টার=নাম
একটি ELF ভাগ করা বস্তু তৈরি করার সময়, অভ্যন্তরীণ DT_FILTER সেট করুন
নির্দিষ্ট নামের ক্ষেত্র। এটি গতিশীল লিঙ্কারকে বলে যে
ভাগ করা বস্তুর প্রতীক টেবিল যা তৈরি করা হচ্ছে
ভাগ করা বস্তুর প্রতীক টেবিলে একটি ফিল্টার হিসাবে ব্যবহার করা হবে নাম.
যদি আপনি পরে এই ফিল্টার অবজেক্টের বিরুদ্ধে একটি প্রোগ্রাম লিঙ্ক করেন, তাহলে, কখন
আপনি প্রোগ্রামটি চালান, ডায়নামিক লিঙ্কারটি DT_FILTER দেখতে পাবে
ক্ষেত্র ডায়নামিক লিঙ্কার অনুযায়ী চিহ্নগুলি সমাধান করবে
যথারীতি ফিল্টার অবজেক্টের প্রতীক টেবিল, কিন্তু এটি আসলে হবে
ভাগ করা বস্তুতে পাওয়া সংজ্ঞাগুলির লিঙ্ক নাম। সুতরাং
ফিল্টার অবজেক্ট প্রতীকগুলির একটি উপসেট নির্বাচন করতে ব্যবহার করা যেতে পারে
বস্তু দ্বারা প্রদান করা হয় নাম.
কিছু পুরানো লিঙ্কার ব্যবহার করে -F একটি সংকলন জুড়ে বিকল্প
ইনপুট এবং উভয়ের জন্য অবজেক্ট-ফাইল বিন্যাস নির্দিষ্ট করার জন্য টুলচেন
আউটপুট অবজেক্ট ফাইল। GNU লিঙ্কার এটির জন্য অন্যান্য প্রক্রিয়া ব্যবহার করে
উদ্দেশ্য: the -b, --ফরম্যাট, --ফরম্যাট অপশন, "টার্গেট" কমান্ড
লিঙ্কার স্ক্রিপ্টে, এবং "GNUTARGET" পরিবেশ পরিবর্তনশীল। দ্য
GNU লিঙ্কার উপেক্ষা করবে -F একটি ELF তৈরি না করার সময় বিকল্প
ভাগ করা বস্তু।
-ফিনি=নাম
একটি ELF এক্সিকিউটেবল বা শেয়ার করা অবজেক্ট তৈরি করার সময়, NAME কে কল করুন
এক্সিকিউটেবল বা শেয়ার করা অবজেক্ট আনলোড করা হয়, DT_FINI সেট করে
ফাংশনের ঠিকানা। ডিফল্টরূপে, লিঙ্কার "_fini" ব্যবহার করে
কল করার ফাংশন হিসাবে।
-g উপেক্ষা করা হয়েছে। অন্যান্য সরঞ্জামগুলির সাথে সামঞ্জস্যের জন্য সরবরাহ করা হয়েছে।
-G মূল্য
--gpsize=মূল্য
জিপি ব্যবহার করে অপ্টিমাইজ করা বস্তুর সর্বোচ্চ আকার সেট করুন
নিবন্ধন করুন আয়তন. এটি শুধুমাত্র অবজেক্ট ফাইল ফরম্যাটের জন্য অর্থপূর্ণ
যেমন MIPS ELF যেটি বড় এবং ছোট বস্তুকে প্রবেশ করাতে সহায়তা করে
বিভিন্ন বিভাগ। এটি অন্যান্য অবজেক্ট ফাইল ফরম্যাটের জন্য উপেক্ষা করা হয়।
-h নাম
-সোনাম=নাম
একটি ELF ভাগ করা বস্তু তৈরি করার সময়, অভ্যন্তরীণ DT_SONAME সেট করুন৷
নির্দিষ্ট নামের ক্ষেত্র। যখন একটি এক্সিকিউটেবল একটি সঙ্গে লিঙ্ক করা হয়
শেয়ার্ড অবজেক্ট যার একটি DT_SONAME ফিল্ড আছে, তারপর যখন এক্সিকিউটেবল
চালানো হয় ডাইনামিক লিঙ্কার শেয়ার করা অবজেক্ট লোড করার চেষ্টা করবে
ফাইলটি ব্যবহার করার পরিবর্তে DT_SONAME ফিল্ড দ্বারা নির্দিষ্ট করা হয়েছে
লিঙ্কারকে দেওয়া নাম।
-i একটি বর্ধিত লিঙ্ক সম্পাদন করুন (বিকল্প হিসাবে একই -r).
-init=নাম
একটি ELF এক্সিকিউটেবল বা শেয়ার করা অবজেক্ট তৈরি করার সময়, NAME কে কল করুন
এক্সিকিউটেবল বা শেয়ার করা অবজেক্টটি DT_INIT সেট করে লোড করা হয়
ফাংশনের ঠিকানা। ডিফল্টরূপে, লিঙ্কার "_init" ব্যবহার করে
কল করার ফাংশন হিসাবে।
-l namespec
--লাইব্রেরি=namespec
দ্বারা নির্দিষ্ট আর্কাইভ বা অবজেক্ট ফাইল যোগ করুন namespec তালিকা থেকে
লিঙ্ক করার জন্য ফাইল। এই বিকল্পটি যে কোনো সংখ্যক বার ব্যবহার করা যেতে পারে। যদি
namespec ফর্মের হয় : ফাইলের নাম, ld লাইব্রেরি পথ অনুসন্ধান করবে
নামের একটি ফাইলের জন্য ফাইলের নাম, অন্যথায় এটি লাইব্রেরি অনুসন্ধান করবে
নামক ফাইলের জন্য পাথ libnamespec.a.
শেয়ার্ড লাইব্রেরি সমর্থন করে এমন সিস্টেমে, ld এছাড়াও অনুসন্ধান করতে পারে
ছাড়া অন্য ফাইল libnamespec.a. বিশেষত, ELF এবং SunOS-এ
সিস্টেম, ld নামক একটি লাইব্রেরির জন্য একটি ডিরেক্টরি অনুসন্ধান করবে
libnamespec.so একটি কল অনুসন্ধান করার আগে libnamespec.a. (দ্বারা
কনভেনশন, একটি ".so" এক্সটেনশন একটি শেয়ার্ড লাইব্রেরি নির্দেশ করে।) নোট
যে এই আচরণ প্রযোজ্য নয় : ফাইলের নামযা সর্বদা
নামক একটি ফাইল নির্দিষ্ট করে ফাইলের নাম.
লিঙ্কার শুধুমাত্র একবার একটি সংরক্ষণাগার অনুসন্ধান করবে, অবস্থান যেখানে
এটি কমান্ড লাইনে নির্দিষ্ট করা আছে। যদি সংরক্ষণাগার সংজ্ঞায়িত করে a
চিহ্ন যা কিছু বস্তুতে অনির্ধারিত ছিল যা এর আগে উপস্থিত হয়েছিল
কমান্ড লাইনে সংরক্ষণাগার, লিঙ্কার অন্তর্ভুক্ত হবে
আর্কাইভ থেকে উপযুক্ত ফাইল(গুলি)। যাইহোক, একটি অনির্ধারিত প্রতীক
কমান্ড লাইনে পরে প্রদর্শিত একটি বস্তুর কারণ হবে না
আবার সংরক্ষণাগার অনুসন্ধান করার জন্য linker.
দেখ -( লিঙ্কারকে আর্কাইভ অনুসন্ধান করতে বাধ্য করার একটি উপায়ের বিকল্প
একাধিক বার.
আপনি কমান্ড লাইনে একই সংরক্ষণাগার একাধিকবার তালিকাভুক্ত করতে পারেন।
এই ধরনের সংরক্ষণাগার অনুসন্ধান ইউনিক্স লিঙ্কারদের জন্য আদর্শ।
যাইহোক, যদি আপনি ব্যবহার করছেন ld AIX-এ, মনে রাখবেন যে এটি থেকে আলাদা
AIX লিঙ্কারের আচরণ।
-L searchdir
--লাইব্রেরি-পাথ=searchdir
পথ যোগ করুন searchdir পাথ যে তালিকা ld অনুসন্ধান করবে
সংরক্ষণাগার লাইব্রেরি এবং ld নিয়ন্ত্রণ স্ক্রিপ্ট। আপনি এই বিকল্প ব্যবহার করতে পারেন
যে কোন সংখ্যা ক্রমানুসারে ডিরেক্টরি অনুসন্ধান করা হয়
যা তারা কমান্ড লাইনে নির্দিষ্ট করা হয়। ডিরেক্টরি
কমান্ড লাইনে নির্দিষ্ট করা ডিফল্টের আগে অনুসন্ধান করা হয়
ডিরেক্টরি সব -L বিকল্প সকলের জন্য প্রযোজ্য -l অপশন, নির্বিশেষে
যে ক্রমে অপশন প্রদর্শিত হবে। -L বিকল্পগুলি প্রভাবিত করে না
কিভাবে ld একটি লিঙ্কার স্ক্রিপ্ট জন্য অনুসন্ধান যদি না -T বিকল্প নির্দিষ্ট করা হয়।
If searchdir "=" দিয়ে শুরু হয়, তারপর "=" দিয়ে প্রতিস্থাপিত হবে
sysroot উপসর্গদ্বারা নিয়ন্ত্রিত --sysroot বিকল্প, বা নির্দিষ্ট
যখন লিঙ্কার কনফিগার করা হয়।
অনুসন্ধান করা পথের ডিফল্ট সেট (এর সাথে নির্দিষ্ট করা ছাড়াই -L)
কোন এমুলেশন মোডের উপর নির্ভর করে ld ব্যবহার করছে, এবং কিছু ক্ষেত্রেও
এটা কিভাবে কনফিগার করা হয়েছে.
এর সাথে একটি লিঙ্ক স্ক্রিপ্টে পাথগুলিও নির্দিষ্ট করা যেতে পারে
"SEARCH_DIR" কমান্ড। এই ভাবে নির্দিষ্ট ডিরেক্টরি অনুসন্ধান করা হয়
যে পয়েন্টে লিঙ্কার স্ক্রিপ্ট কমান্ডে উপস্থিত হয়
লাইন।
-m অনুকরণ
অনুকরণ করুন অনুকরণ লিঙ্কার আপনি উপলব্ধ তালিকা করতে পারেন
সঙ্গে অনুকরণ -- ভারবোস or -V অপশন।
যদি -m বিকল্প ব্যবহার করা হয় না, অনুকরণ থেকে নেওয়া হয়
"LDEMULATION" পরিবেশ পরিবর্তনশীল, যদি এটি সংজ্ঞায়িত করা হয়।
অন্যথায়, ডিফল্ট এমুলেশন নির্ভর করে কিভাবে লিঙ্কার ছিল তার উপর
কনফিগার করা হয়েছে।
-M
--প্রিন্ট-মানচিত্র
স্ট্যান্ডার্ড আউটপুটে একটি লিঙ্ক মানচিত্র প্রিন্ট করুন। একটি লিঙ্ক মানচিত্র প্রদান করে
লিঙ্ক সম্পর্কে তথ্য, নিম্নলিখিত সহ:
যেখানে অবজেক্ট ফাইল মেমরিতে ম্যাপ করা হয়।
· কিভাবে সাধারণ প্রতীক বরাদ্দ করা হয়।
· সমস্ত আর্কাইভ সদস্যদের একটি উল্লেখ সহ লিঙ্কে অন্তর্ভুক্ত
চিহ্ন যা আর্কাইভ সদস্যকে আনা হয়েছে।
· প্রতীকের জন্য নির্ধারিত মান।
দ্রষ্টব্য - প্রতীক যার মান একটি অভিব্যক্তি দ্বারা গণনা করা হয় যা
একই চিহ্ন মে এর পূর্ববর্তী মানের একটি রেফারেন্স জড়িত
লিঙ্ক মানচিত্রে প্রদর্শিত সঠিক ফলাফল নেই। এই
কারণ লিঙ্কার মধ্যবর্তী ফলাফল বাতিল করে এবং শুধুমাত্র
একটি অভিব্যক্তির চূড়ান্ত মান ধরে রাখে। যেমন অধীনে
পরিস্থিতিতে লিঙ্কারটি বদ্ধ চূড়ান্ত মান প্রদর্শন করবে
বর্গাকার বন্ধনী দ্বারা। এইভাবে উদাহরণস্বরূপ একটি লিঙ্কার স্ক্রিপ্ট
ধারণকারী:
foo = 1
foo = foo * 4
foo = foo + 8
লিঙ্ক মানচিত্রে নিম্নলিখিত আউটপুট উত্পাদন করবে যদি -M
বিকল্প ব্যবহার করা হয়:
0x00000001 foo = 0x1
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)
দেখ এক্সপ্রেশন এক্সপ্রেশন সম্পর্কে আরও তথ্যের জন্য
লিঙ্কার স্ক্রিপ্ট।
-n
--জাদু
বিভাগগুলির পৃষ্ঠা প্রান্তিককরণ বন্ধ করুন এবং এর বিরুদ্ধে লিঙ্ক করা অক্ষম করুন৷
ভাগ করা লাইব্রেরি। যদি আউটপুট ফরম্যাট ইউনিক্স স্টাইল ম্যাজিক সমর্থন করে
সংখ্যা, আউটপুটটিকে "NMAGIC" হিসাবে চিহ্নিত করুন।
-N
--অম্যাজিক
পাঠ্য এবং ডেটা বিভাগগুলি পাঠযোগ্য এবং লেখার যোগ্য হিসাবে সেট করুন। এছাড়াও,
ডেটা সেগমেন্টকে পৃষ্ঠা-সারিবদ্ধ করবেন না এবং এর বিরুদ্ধে লিঙ্ক করা অক্ষম করবেন না
ভাগ করা লাইব্রেরি। যদি আউটপুট ফরম্যাট ইউনিক্স স্টাইল ম্যাজিক সমর্থন করে
সংখ্যা, আউটপুটটিকে "OMAGIC" হিসাবে চিহ্নিত করুন। দ্রষ্টব্য: যদিও একটি লিখনযোগ্য
পাঠ্য বিভাগটি PE-COFF লক্ষ্যগুলির জন্য অনুমোদিত, এটি মেনে চলে না
মাইক্রোসফ্ট দ্বারা প্রকাশিত ফর্ম্যাট স্পেসিফিকেশন।
--নো-অম্যাজিক
এই বিকল্পটি এর বেশিরভাগ প্রভাবকে অস্বীকার করে -N বিকল্প এটা সেট
পাঠ্য বিভাগটি শুধুমাত্র পঠনযোগ্য, এবং ডেটা বিভাগটিকে হতে বাধ্য করে
পৃষ্ঠা-সারিবদ্ধ। দ্রষ্টব্য - এই বিকল্পটি এর বিরুদ্ধে লিঙ্ক করা সক্ষম করে না
ভাগ করা লাইব্রেরি। ব্যবহার করুন -বিডাইনামিক এই জন্য।
-o আউটপুট
--আউটপুট=আউটপুট
ব্যবহার আউটপুট দ্বারা উত্পাদিত প্রোগ্রামের নাম হিসাবে ld; এই যদি
বিকল্পটি নির্দিষ্ট করা নেই, নাম a. আউট ডিফল্টরূপে ব্যবহৃত হয়। দ্য
স্ক্রিপ্ট কমান্ড "OUTPUT" আউটপুট ফাইলের নামও নির্দিষ্ট করতে পারে।
-O স্তর
If স্তর শূন্যের চেয়ে বড় একটি সংখ্যাসূচক মান ld অপ্টিমাইজ করে
আউটপুট এটি উল্লেখযোগ্যভাবে বেশি সময় নিতে পারে এবং তাই
সম্ভবত শুধুমাত্র চূড়ান্ত বাইনারি জন্য সক্রিয় করা উচিত. এ
মুহূর্তে এই বিকল্পটি শুধুমাত্র ELF শেয়ার্ড লাইব্রেরি জেনারেশনকে প্রভাবিত করে।
লিঙ্কারের ভবিষ্যত রিলিজগুলি এই বিকল্পের আরও বেশি ব্যবহার করতে পারে।
এছাড়াও বর্তমানে লিঙ্কারের আচরণে কোন পার্থক্য নেই
এই বিকল্পের বিভিন্ন অ-শূন্য মান। আবার এই পরিবর্তন হতে পারে
ভবিষ্যতের রিলিজের সাথে।
--ধাক্কা-রাজ্য
সার্জারির --ধাক্কা-রাজ্য পতাকার বর্তমান অবস্থা সংরক্ষণ করার অনুমতি দেয়
যা ইনপুট ফাইল হ্যান্ডলিং পরিচালনা করে যাতে তারা সব হতে পারে
একটি অনুরূপ সঙ্গে পুনরুদ্ধার --পপ-রাজ্য বিকল্প।
কভার করা বিকল্প হল: -বিডাইনামিক, -বস্ট্যাটিক, -ডিএন, -ডি,
-কল_শেয়ার করা হয়েছে, -non_shared, - স্থির, -N, -n, --পুরো আর্কাইভ,
--নো-পুরো-আর্কাইভ, -r, -উর, --কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি,
--নো-কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি, --যেমন দরকার, --না-প্রয়োজনীয়, এবং -a.
এই বিকল্পের জন্য একটি লক্ষ্যের জন্য নির্দিষ্টকরণ pkg-config। কখন
এর সাথে ব্যবহার করা হয় --libs বিকল্প সব সম্ভাব্য লাইব্রেরি হয়
তালিকাভুক্ত এবং তারপর সম্ভবত সব সময়ের সাথে সংযুক্ত। করা ভালো
নিম্নরূপ কিছু ফেরত দিন:
-ডব্লিউএল,-পুশ-স্টেট,--প্রয়োজনে -লিবোন -লিবটো -ডব্লিউএল,-পপ-স্টেট
--push-state-এর প্রভাবকে পূর্বাবস্থায় ফিরিয়ে আনে, এর আগের মানগুলি পুনরুদ্ধার করে
ইনপুট ফাইল পরিচালনার পতাকা।
-q
--এমিট-রিলোকস
সম্পূর্ণভাবে সংযুক্ত এক্সিকিউটেবলগুলিতে স্থানান্তর বিভাগ এবং বিষয়বস্তু ছেড়ে দিন।
পোস্ট লিঙ্ক বিশ্লেষণ এবং অপ্টিমাইজেশান সরঞ্জাম এই তথ্য প্রয়োজন হতে পারে
এক্সিকিউটেবলের সঠিক পরিবর্তন করার জন্য। এই
বৃহত্তর এক্সিকিউটেবল ফলাফল.
এই বিকল্পটি বর্তমানে শুধুমাত্র ELF প্ল্যাটফর্মে সমর্থিত।
-- বল-গতিশীল
গতিশীল বিভাগ আছে আউটপুট ফাইল জোর করুন. এই বিকল্প হয়
VxWorks লক্ষ্যমাত্রার জন্য নির্দিষ্ট।
-r
-- স্থানান্তরযোগ্য
রিলোকেটেবল আউটপুট জেনারেট করুন---অর্থাৎ, একটি আউটপুট ফাইল তৈরি করুন যা
পালাক্রমে ইনপুট হিসাবে পরিবেশন করতে পারেন ld. এটা প্রায়ই বলা হয় আংশিক
লিঙ্ক. একটি পার্শ্ব প্রতিক্রিয়া হিসাবে, মান সমর্থন করে এমন পরিবেশে
ইউনিক্স ম্যাজিক নম্বর, এই বিকল্পটি আউটপুট ফাইলের জাদুও সেট করে
"OMAGIC" নম্বরে। এই বিকল্পটি নির্দিষ্ট করা না থাকলে, একটি পরম
ফাইল উত্পাদিত হয়। C++ প্রোগ্রাম লিঙ্ক করার সময়, এই বিকল্প ইচ্ছা না
কনস্ট্রাক্টরদের রেফারেন্স সমাধান করুন; এটি করতে, ব্যবহার করুন -উর.
যখন একটি ইনপুট ফাইলের আউটপুটের মতো একই বিন্যাস থাকে না
ফাইল, আংশিক লিঙ্কিং শুধুমাত্র সমর্থিত যদি সেই ইনপুট ফাইলটি না করে
কোনো স্থানান্তর ধারণ করে। বিভিন্ন আউটপুট ফরম্যাট আরও থাকতে পারে
সীমাবদ্ধতা উদাহরণস্বরূপ কিছু "a.out"-ভিত্তিক বিন্যাস সমর্থন করে না
অন্য ফরম্যাটে ইনপুট ফাইলের সাথে আংশিক লিঙ্ক করা।
এই বিকল্পটি একই কাজ করে -i.
-R ফাইলের নাম
--শুধু-প্রতীক=ফাইলের নাম
থেকে প্রতীকের নাম এবং তাদের ঠিকানা পড়ুন ফাইলের নাম, কিন্তু না
এটিকে স্থানান্তর করুন বা এটিকে আউটপুটে অন্তর্ভুক্ত করুন। এটি আপনার আউটপুট অনুমতি দেয়
সংজ্ঞায়িত মেমরির পরম অবস্থানে প্রতীকীভাবে উল্লেখ করার জন্য ফাইল
অন্যান্য প্রোগ্রামে। আপনি এই বিকল্পটি একাধিকবার ব্যবহার করতে পারেন।
অন্যান্য ELF লিঙ্কারের সাথে সামঞ্জস্যের জন্য, যদি -R বিকল্প হয়
একটি ফাইলের নামের পরিবর্তে একটি ডিরেক্টরির নাম দ্বারা অনুসরণ করা হয়
হিসাবে বিবেচনা করা হয় -আরপাথ বিকল্প।
-s
-- ফালা সব
আউটপুট ফাইল থেকে সমস্ত প্রতীক তথ্য বাদ দিন।
-S
--স্ট্রিপ-ডিবাগ
থেকে ডিবাগার প্রতীক তথ্য (কিন্তু সব প্রতীক নয়) বাদ দিন
আউটপুট ফাইল.
-t
-- ট্রেস
ইনপুট ফাইলের নাম প্রিন্ট করুন ld তাদের প্রক্রিয়া করে।
-T স্ক্রিপ্ট ফাইল
--স্ক্রিপ্ট=স্ক্রিপ্ট ফাইল
ব্যবহার স্ক্রিপ্ট ফাইল লিঙ্কার স্ক্রিপ্ট হিসাবে। এই স্ক্রিপ্ট প্রতিস্থাপন ld's
ডিফল্ট লিঙ্কার স্ক্রিপ্ট (এটি যোগ করার পরিবর্তে), তাই কমান্ড ফাইল
আউটপুট ফাইল বর্ণনা করার জন্য প্রয়োজনীয় সবকিছু নির্দিষ্ট করতে হবে।
If স্ক্রিপ্ট ফাইল বর্তমান ডিরেক্টরিতে বিদ্যমান নেই, "ld" দেখায়
কোনো পূর্ববর্তী দ্বারা নির্দিষ্ট ডিরেক্টরিতে এটির জন্য -L অপশন।
বহু -T বিকল্পগুলি জমা হয়।
-ডিটি স্ক্রিপ্ট ফাইল
--default-script=স্ক্রিপ্ট ফাইল
ব্যবহার স্ক্রিপ্ট ফাইল ডিফল্ট লিঙ্কার স্ক্রিপ্ট হিসাবে।
এই বিকল্পটি অনুরূপ --লিপি তা ছাড়া বিকল্প
স্ক্রিপ্টের প্রক্রিয়াকরণ বাকি না হওয়া পর্যন্ত বিলম্বিত হয়
কমান্ড লাইন প্রক্রিয়া করা হয়েছে। এই বিকল্পগুলি পরে রাখা অনুমতি দেয়
দ্য --ডিফল্ট-স্ক্রিপ্ট প্রভাবিত করার জন্য কমান্ড লাইনের বিকল্প
লিঙ্কার স্ক্রিপ্টের আচরণ, যা গুরুত্বপূর্ণ হতে পারে যখন
linker কমান্ড লাইন সরাসরি ব্যবহারকারী দ্বারা নিয়ন্ত্রিত করা যাবে না. (যেমন
কারণ কমান্ড লাইন অন্য টুল দ্বারা নির্মিত হচ্ছে, যেমন
as জিসিসি).
-u প্রতীক
--অনির্ধারিত=প্রতীক
বল প্রতীক আউটপুট ফাইলে একটি অনির্ধারিত হিসাবে প্রবেশ করতে হবে
প্রতীক এটি করা, উদাহরণস্বরূপ, অতিরিক্ত লিঙ্কিং ট্রিগার করতে পারে
স্ট্যান্ডার্ড লাইব্রেরি থেকে মডিউল। -u বিভিন্ন সঙ্গে পুনরাবৃত্তি হতে পারে
অতিরিক্ত অনির্ধারিত চিহ্ন লিখতে বিকল্প আর্গুমেন্ট। এই
বিকল্পটি "EXTERN" লিঙ্কার স্ক্রিপ্ট কমান্ডের সমতুল্য।
যদি এই বিকল্পটি অতিরিক্ত মডিউলগুলিকে বাধ্য করতে ব্যবহৃত হয়
লিঙ্কে টানা, এবং যদি এটি প্রতীকের জন্য একটি ত্রুটি হয়
অনির্ধারিত থাকুন, তারপর বিকল্প --প্রয়োজন-সংজ্ঞায়িত ব্যবহার করা উচিত
পরিবর্তে.
--require-defined=প্রতীক
যে প্রয়োজন প্রতীক আউটপুট ফাইলে সংজ্ঞায়িত করা হয়। এই বিকল্প হয়
বিকল্প হিসাবে একই --অনির্ধারিত যে ছাড়া যদি প্রতীক সংজ্ঞায়িত করা হয় নি
আউটপুট ফাইলে তারপর লিঙ্কার একটি ত্রুটি জারি করবে এবং প্রস্থান করবে।
একই প্রভাব একটি লিঙ্কার স্ক্রিপ্ট ব্যবহার করে অর্জন করা যেতে পারে
"EXTERN", "ASSERT" এবং "DEFINED" একসাথে। এই বিকল্পটি ব্যবহার করা যেতে পারে
একাধিকবার অতিরিক্ত চিহ্নের প্রয়োজন।
-উর C++ প্রোগ্রাম ছাড়া অন্য যেকোনো কিছুর জন্য, এই বিকল্পটি সমতুল্য
-r: এটি রিলোকেটেবল আউটপুট তৈরি করে---অর্থাৎ, একটি আউটপুট ফাইল যা করতে পারে
পরিবর্তে ইনপুট হিসাবে পরিবেশন করা ld. C++ প্রোগ্রাম লিঙ্ক করার সময়, -উর না
কনস্ট্রাক্টরদের রেফারেন্স সমাধান করুন, ভিন্ন -r. এটা কাজ করে না
ব্যবহার -উর যে ফাইলগুলির সাথে নিজেরাই লিঙ্ক করা হয়েছিল -উর; একদা
কনস্ট্রাক্টর টেবিল তৈরি করা হয়েছে, এটি যোগ করা যাবে না। ব্যবহার করুন -উর
শুধুমাত্র শেষ আংশিক লিঙ্কের জন্য, এবং -r অন্যদের জন্য
--অনাথ-হ্যান্ডলিং=মোড
অনাথ বিভাগগুলি কীভাবে পরিচালনা করা হয় তা নিয়ন্ত্রণ করুন। একটি এতিম বিভাগ একটি
লিঙ্কার স্ক্রিপ্টে বিশেষভাবে উল্লেখ করা হয়নি।
মোড নিম্নলিখিত মানগুলির যেকোনো একটি থাকতে পারে:
"স্থান"
অনাথ বিভাগ একটি উপযুক্ত আউটপুট বিভাগে স্থাপন করা হয়
বর্ণিত কৌশল অনুসরণ করে অনাথ সেকশনস. দ্য
পছন্দ -- অনন্য বিভাগগুলি কীভাবে স্থাপন করা হয় তাও প্রভাবিত করে।
"বাতিল করা"
সমস্ত এতিম বিভাগে তাদের স্থাপন দ্বারা, বাতিল করা হয়
/বাতিল করা/ অধ্যায়.
"সতর্ক"
লিঙ্কার "স্থান" এবং এর জন্য অনাথ বিভাগটি স্থাপন করবে
এছাড়াও একটি সতর্কতা জারি।
"ত্রুটি"
কোনো অনাথ বিভাগ থাকলে লিঙ্ককারী একটি ত্রুটি সহ প্রস্থান করবে
পাওয়া যায় নি।
ডিফল্ট যদি --অনাথ-হ্যান্ডলিং "স্থান" দেওয়া হয় না।
--অদ্বিতীয়[=অধ্যায়]
প্রতিটি ইনপুট বিভাগের মিলের জন্য একটি পৃথক আউটপুট বিভাগ তৈরি করে
অধ্যায়, অথবা যদি ঐচ্ছিক ওয়াইল্ডকার্ড অধ্যায় যুক্তি অনুপস্থিত,
প্রতিটি এতিম ইনপুট বিভাগের জন্য। একটি এতিম বিভাগ একটি নয়
একটি লিঙ্কার স্ক্রিপ্টে বিশেষভাবে উল্লেখ করা হয়েছে। আপনি এই বিকল্প ব্যবহার করতে পারেন
কমান্ড লাইনে একাধিকবার; এটি স্বাভাবিক একত্রীকরণ প্রতিরোধ করে
একই নামের ইনপুট বিভাগের, আউটপুট বিভাগ ওভাররাইডিং
একটি লিঙ্কার স্ক্রিপ্টে অ্যাসাইনমেন্ট।
-v
--সংস্করণ
-V এর জন্য সংস্করণ নম্বর প্রদর্শন করুন ld. দ্য -V বিকল্প এছাড়াও তালিকাভুক্ত
সমর্থিত অনুকরণ।
-x
--সব বাতিল
সমস্ত স্থানীয় চিহ্ন মুছুন।
-X
--স্থানীয়দের বাদ দিন
সমস্ত অস্থায়ী স্থানীয় চিহ্ন মুছুন। (এই প্রতীকগুলি দিয়ে শুরু হয়
সিস্টেম-নির্দিষ্ট স্থানীয় লেবেল উপসর্গ, সাধারণত .L ELF সিস্টেমের জন্য
or L ঐতিহ্যগত a.out সিস্টেমের জন্য।)
-y প্রতীক
--ট্রেস-সিম্বল=প্রতীক
প্রতিটি লিঙ্ক করা ফাইলের নাম প্রিন্ট করুন যার মধ্যে প্রতীক প্রদর্শিত এই
বিকল্প যে কোনো সময় দেওয়া যেতে পারে। অনেক সিস্টেমে এটা হয়
একটি আন্ডারস্কোর প্রিপেন্ড করার জন্য প্রয়োজনীয়।
এই বিকল্পটি উপযোগী যখন আপনার একটি অনির্ধারিত চিহ্ন থাকে
লিঙ্ক কিন্তু রেফারেন্স কোথা থেকে আসছে জানি না।
-Y পথ
বিজ্ঞাপন পথ ডিফল্ট লাইব্রেরি অনুসন্ধানের পথে। এই বিকল্পটি বিদ্যমান
সোলারিস সামঞ্জস্যের জন্য।
-z শব্দ
স্বীকৃত কীওয়ার্ড হল:
combreloc
একাধিক রিলোক বিভাগকে একত্রিত করে এবং গতিশীল করতে তাদের সাজায়
প্রতীক লুকআপ ক্যাশিং সম্ভব।
defs
অবজেক্ট ফাইলে অনির্ধারিত চিহ্নগুলিকে অনুমোদন করে না। অনির্ধারিত প্রতীক
ভাগ করা লাইব্রেরিতে এখনও অনুমোদিত।
execstack
বস্তুটিকে এক্সিকিউটেবল স্ট্যাকের প্রয়োজন হিসাবে চিহ্নিত করে।
বিশ্বব্যাপী
একটি ভাগ করা বস্তু নির্মাণ করার সময় এই বিকল্পটি শুধুমাত্র অর্থবহ।
এটি এই ভাগ করা বস্তু দ্বারা সংজ্ঞায়িত প্রতীকগুলি উপলব্ধ করে
পরবর্তীতে লোড করা লাইব্রেরির প্রতীক রেজোলিউশনের জন্য।
initfirst
একটি ভাগ করা বস্তু নির্মাণ করার সময় এই বিকল্পটি শুধুমাত্র অর্থবহ।
এটি বস্তুটিকে চিহ্নিত করে যাতে এর রানটাইম আরম্ভ হবে
অন্য কোনো অবজেক্টের রানটাইম ইনিশিয়ালাইজেশনের আগে ঘটে
একই সময়ে প্রক্রিয়ার মধ্যে আনা। একইভাবে
অবজেক্টের রানটাইম চূড়ান্তকরণ রানটাইমের পরে ঘটবে
অন্য কোন বস্তুর চূড়ান্তকরণ।
ইন্টারপোজ
বস্তুটিকে চিহ্নিত করে যা এর প্রতীক টেবিল সবার আগে ইন্টারপোজ করে
প্রতীক কিন্তু প্রাথমিক এক্সিকিউটেবল।
অলস
একটি এক্সিকিউটেবল বা শেয়ার্ড লাইব্রেরি তৈরি করার সময়, এটি চিহ্নিত করুন
ফাংশন কল রেজোলিউশন স্থগিত করতে ডায়নামিক লিঙ্কারকে বলুন
বিন্দু যখন ফাংশন বলা হয় (অলস বাঁধাই), বরং
লোড সময়ের তুলনায়। অলস বাঁধাই ডিফল্ট।
loadfltr
বস্তুটিকে চিহ্নিত করে যেটির ফিল্টারগুলি অবিলম্বে প্রক্রিয়া করা হবে
রানটাইম
muldefs
একাধিক সংজ্ঞার অনুমতি দেয়।
nocombreloc
একাধিক রিলোক বিভাগ একত্রিত করা অক্ষম করে।
nocopyreloc
এর জায়গায় ব্যবহৃত লিঙ্কার জেনারেট করা .dynbss ভেরিয়েবল অক্ষম করুন
ভাগ করা লাইব্রেরিতে সংজ্ঞায়িত ভেরিয়েবল। গতিশীল হতে পারে
পাঠ্য স্থানান্তর।
nodefaultlib
এই নির্ভরতা জন্য অনুসন্ধান যে বস্তু চিহ্নিত করে
অবজেক্ট কোনো ডিফল্ট লাইব্রেরি অনুসন্ধান পাথ উপেক্ষা করবে।
নোডেলিট
রানটাইমে অবজেক্টটি আনলোড করা উচিত নয় বলে চিহ্নিত করে।
নোডলোপেন
বস্তুটিকে "dlopen" এ উপলব্ধ নয় চিহ্নিত করে।
নোডাম্প
বস্তুটিকে "dldump" দ্বারা ডাম্প করা যাবে না বলে চিহ্নিত করে।
noexecstack
বস্তুটিকে এক্সিকিউটেবল স্ট্যাকের প্রয়োজন নেই বলে চিহ্নিত করে।
পাঠ
ভাগ করা বস্তুর মধ্যে DT_TEXTREL কে ত্রুটি হিসাবে বিবেচনা করুন৷
নোট
ভাগ করা বস্তুর মধ্যে DT_TEXTREL কে ত্রুটি হিসাবে বিবেচনা করবেন না৷
টেক্সটঅফ
ভাগ করা বস্তুর মধ্যে DT_TEXTREL কে ত্রুটি হিসাবে বিবেচনা করবেন না৷
norelro
তে একটি ELF "PT_GNU_RELRO" সেগমেন্ট হেডার তৈরি করবেন না৷
অবজেক্ট।
এখন একটি এক্সিকিউটেবল বা শেয়ার্ড লাইব্রেরি তৈরি করার সময়, এটি চিহ্নিত করুন
ডায়নামিক লিঙ্কারকে বলুন প্রোগ্রামের সময় সব চিহ্নের সমাধান করতে
শুরু হয়, অথবা যখন শেয়ার করা লাইব্রেরি ব্যবহার করার সাথে লিঙ্ক করা হয়
dlopen, ফাংশন কল রেজোলিউশন স্থগিত করার পরিবর্তে
বিন্দু যখন ফাংশন প্রথম কল করা হয়.
উত্স
বস্তুতে $ORIGIN থাকতে পারে চিহ্নিত করে।
relro
বস্তুতে একটি ELF "PT_GNU_RELRO" সেগমেন্ট হেডার তৈরি করুন।
সর্বোচ্চ-পৃষ্ঠা-আকার=মূল্য
এমুলেশন সর্বোচ্চ পৃষ্ঠার আকার সেট করুন মূল্য.
সাধারণ-পৃষ্ঠা-আকার=মূল্য
এমুলেশন সাধারণ পৃষ্ঠার আকার সেট করুন মূল্য.
স্ট্যাক-সাইজ=মূল্য
একটি ELF "PT_GNU_STACK" সেগমেন্টের জন্য একটি স্ট্যাকের আকার নির্দিষ্ট করুন৷
শূন্য নির্দিষ্ট করা যেকোনো ডিফল্ট অ-শূন্য আকারকে ওভাররাইড করবে
"PT_GNU_STACK" সেগমেন্ট তৈরি।
bndplt
PLT এন্ট্রিতে সর্বদা BND উপসর্গ তৈরি করুন। জন্য সমর্থিত
লিনাক্স/x86_64।
noextern-সুরক্ষিত-ডেটা
নির্মাণের সময় সুরক্ষিত ডেটা চিহ্নকে বাহ্যিক হিসাবে বিবেচনা করবেন না
ভাগ করা লাইব্রেরি। এই বিকল্পটি লিঙ্কার ব্যাকএন্ড ডিফল্ট ওভাররাইড করে।
এটি ভুল স্থানান্তরের বিরুদ্ধে কাজ করতে ব্যবহার করা যেতে পারে
কম্পাইলার দ্বারা উত্পন্ন সুরক্ষিত ডেটা প্রতীক। উপর আপডেট
অন্য মডিউল দ্বারা সুরক্ষিত ডেটা চিহ্নগুলি দৃশ্যমান নয়
ফলে ভাগ করা লাইব্রেরি। i386 এবং x86-64 এর জন্য সমর্থিত।
call-nop=prefix-addr
call-nop=prefix-nop
call-nop=প্রত্যয়-নপ
call-nop= উপসর্গ-সংবাদের একক
call-nop=প্রত্যয়-সংবাদের একক
পরোক্ষ রূপান্তর করার সময় 1-বাইট "NOP" প্যাডিং নির্দিষ্ট করুন
একটি স্থানীয়ভাবে সংজ্ঞায়িত ফাংশন, foo, এর GOT স্লটের মাধ্যমে কল করুন।
call-nop=prefix-addr "0x67 কল foo" তৈরি করে।
call-nop=prefix-nop "0x90 কল foo" তৈরি করে।
call-nop=প্রত্যয়-নপ "কল foo 0x90" তৈরি করে।
call-nop= উপসর্গ-সংবাদের একক উৎপন্ন করে"সংবাদের একক কল foo".
call-nop=প্রত্যয়-সংবাদের একক "কল foo তৈরি করে বাইট". জন্য সমর্থিত
i386 এবং x86_64।
অন্যান্য কীওয়ার্ড সোলারিস সামঞ্জস্যের জন্য উপেক্ষা করা হয়।
-( নথিপত্র -)
--স্টার্ট-গ্রুপ নথিপত্র --শেষ-গোষ্ঠী
সার্জারির নথিপত্র সংরক্ষণাগার ফাইলগুলির একটি তালিকা হওয়া উচিত। তারাও হতে পারে
স্পষ্ট ফাইলের নাম, বা -l অপশন।
নির্দিষ্ট আর্কাইভগুলি নতুন না হওয়া পর্যন্ত বারবার অনুসন্ধান করা হয়৷
অনির্ধারিত রেফারেন্স তৈরি করা হয়। সাধারণত, একটি সংরক্ষণাগার অনুসন্ধান করা হয়
শুধুমাত্র একবার ক্রমানুসারে যে এটি কমান্ড লাইনে নির্দিষ্ট করা হয়েছে।
যদি একটি অনির্ধারিত সমাধানের জন্য সেই সংরক্ষণাগারে একটি প্রতীক প্রয়োজন হয়
একটি সংরক্ষণাগারে একটি বস্তু দ্বারা উল্লেখিত প্রতীক যা পরে প্রদর্শিত হয়
কমান্ড লাইন, লিঙ্কার এটি সমাধান করতে সক্ষম হবে না
রেফারেন্স আর্কাইভগুলিকে গোষ্ঠীবদ্ধ করে, সেগুলিকে অনুসন্ধান করা হবে
সমস্ত সম্ভাব্য রেফারেন্স সমাধান না হওয়া পর্যন্ত বারবার।
এই বিকল্প ব্যবহার করে একটি উল্লেখযোগ্য কর্মক্ষমতা খরচ আছে। এটা উত্তম
অনিবার্য সার্কুলার রেফারেন্স থাকলেই এটি ব্যবহার করতে
দুই বা ততোধিক আর্কাইভের মধ্যে।
--গ্রহণ-অজানা-ইনপুট-খিলান
--না-গ্রহণ-অজানা-ইনপুট-খিলান
লিঙ্কারকে ইনপুট ফাইল গ্রহণ করতে বলে যার আর্কিটেকচার হতে পারে না
স্বীকৃত অনুমান হল যে ব্যবহারকারী জানেন তারা কি
করছে এবং ইচ্ছাকৃতভাবে এই অজানা ইনপুট ফাইলগুলিতে লিঙ্ক করতে চায়।
2.14 প্রকাশের আগে এটি লিঙ্কারের ডিফল্ট আচরণ ছিল।
রিলিজ 2.14 থেকে ডিফল্ট আচরণ হল এই ধরনের প্রত্যাখ্যান করা
ইনপুট ফাইল, এবং তাই --গ্রহণ-অজানা-ইনপুট-খিলান বিকল্প হয়েছে
পুরানো আচরণ পুনরুদ্ধার করতে যোগ করা হয়েছে।
--যেমন দরকার
--না-প্রয়োজনীয়
এই বিকল্পটি গতিশীল লাইব্রেরির জন্য ELF DT_NEEDED ট্যাগগুলিকে প্রভাবিত করে৷
এর পরে কমান্ড লাইনে উল্লেখ করা হয়েছে --যেমন দরকার বিকল্প।
সাধারণত লিঙ্কার প্রতিটি ডাইনামিক এর জন্য একটি DT_NEEDED ট্যাগ যোগ করবে
কমান্ড লাইনে উল্লিখিত লাইব্রেরি, তা নির্বিশেষে
লাইব্রেরি আসলে প্রয়োজন কি না। --যেমন দরকার একটি DT_NEEDED ঘটায়
ট্যাগ শুধুমাত্র একটি লাইব্রেরির জন্য নির্গত হবে at যে বিন্দু in দ্য লিংক
একটি নিয়মিত থেকে একটি অ-দুর্বল অনির্ধারিত প্রতীক রেফারেন্সকে সন্তুষ্ট করে
অবজেক্ট ফাইল বা, যদি লাইব্রেরিটি DT_NEEDED তালিকায় পাওয়া না যায়
অন্যান্য প্রয়োজনীয় লাইব্রেরিগুলির, একটি অ-দুর্বল অনির্ধারিত প্রতীক রেফারেন্স
অন্য প্রয়োজনীয় গতিশীল লাইব্রেরি থেকে। অবজেক্ট ফাইল বা লাইব্রেরি
কমান্ড লাইনে উপস্থিত হয় পরে প্রশ্নবিদ্ধ লাইব্রেরী না
লাইব্রেরি প্রয়োজন অনুযায়ী দেখা হচ্ছে কিনা তা প্রভাবিত করে। এই অনুরূপ
আর্কাইভ থেকে অবজেক্ট ফাইল নিষ্কাশন জন্য নিয়ম.
--না-প্রয়োজনীয় ডিফল্ট আচরণ পুনরুদ্ধার করে।
--অ্যাড-প্রয়োজনীয়
--কোন-সংযোজন-প্রয়োজন নেই
এই দুটি বিকল্পের মিলের কারণে অবমূল্যায়ন করা হয়েছে
তাদের নাম --যেমন দরকার এবং --না-প্রয়োজনীয় বিকল্প তারা
দ্বারা প্রতিস্থাপিত হয়েছে --কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি এবং
--নো-কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি.
-জাহির করা শব্দ
এই বিকল্পটি SunOS সামঞ্জস্যের জন্য উপেক্ষা করা হয়েছে।
-বিডাইনামিক
-ডি
-কল_শেয়ার করা হয়েছে
ডায়নামিক লাইব্রেরির বিরুদ্ধে লিঙ্ক। এই শুধুমাত্র অর্থপূর্ণ
প্ল্যাটফর্ম যার জন্য ভাগ করা লাইব্রেরি সমর্থিত। এই বিকল্প হয়
সাধারণত এই ধরনের প্ল্যাটফর্মে ডিফল্ট। এর বিভিন্ন রূপ
এই বিকল্পটি বিভিন্ন সিস্টেমের সাথে সামঞ্জস্যের জন্য। আপনি পারেন
কমান্ড লাইনে এই বিকল্পটি একাধিকবার ব্যবহার করুন: এটি প্রভাবিত করে
লাইব্রেরি খুঁজছেন -l বিকল্পগুলি যা এটি অনুসরণ করে।
-বিগ্রুপ
ডায়নামিক এ "DT_FLAGS_1" এন্ট্রিতে "DF_1_GROUP" পতাকা সেট করুন
অধ্যায়. এর ফলে রানটাইম লিঙ্কার এতে লুকআপ পরিচালনা করে
বস্তু এবং তার নির্ভরতা শুধুমাত্র গ্রুপের মধ্যে সঞ্চালিত হবে.
--unresolved-symbols=report-all উহ্য হয় এই বিকল্প শুধুমাত্র
ELF প্ল্যাটফর্মে অর্থবহ যা ভাগ করা লাইব্রেরি সমর্থন করে।
-বস্ট্যাটিক
-ডিএন
-non_shared
- স্থির
শেয়ার করা লাইব্রেরির বিরুদ্ধে লিঙ্ক করবেন না। এই শুধুমাত্র অর্থপূর্ণ
প্ল্যাটফর্ম যার জন্য ভাগ করা লাইব্রেরি সমর্থিত। ব্যবধান
এই বিকল্পের রূপগুলি বিভিন্ন সিস্টেমের সাথে সামঞ্জস্যের জন্য।
আপনি কমান্ড লাইনে এই বিকল্পটি একাধিকবার ব্যবহার করতে পারেন: এটি
লাইব্রেরি অনুসন্ধানকে প্রভাবিত করে -l বিকল্পগুলি যা এটি অনুসরণ করে। এই
বিকল্পটিও বোঝায় --unresolved-symbols=report-all। এই বিকল্প
সঙ্গে ব্যবহার করা যেতে পারে - শেয়ার করা হয়েছে. এটি করার অর্থ হল একটি শেয়ার্ড লাইব্রেরি
তৈরি করা হচ্ছে কিন্তু লাইব্রেরির সমস্ত বাহ্যিক রেফারেন্স
স্ট্যাটিক লাইব্রেরি থেকে এন্ট্রি টেনে সমাধান করতে হবে।
- প্রতীকী
একটি শেয়ার্ড লাইব্রেরি তৈরি করার সময়, গ্লোবাল সিম্বলের রেফারেন্স আবদ্ধ করুন
শেয়ার্ড লাইব্রেরির মধ্যে সংজ্ঞাতে, যদি থাকে। সাধারণত, এটা
একটি শেয়ার্ড লাইব্রেরির সাথে লিঙ্কযুক্ত একটি প্রোগ্রামের জন্য সম্ভব
ভাগ করা লাইব্রেরির মধ্যে সংজ্ঞা ওভাররাইড করুন। এই বিকল্প করতে পারেন
এছাড়াও সঙ্গে ব্যবহার করা হবে --রপ্তানি-গতিশীল বিকল্প, একটি তৈরি করার সময়
অবস্থান স্বাধীন নির্বাহযোগ্য, বিশ্বব্যাপী রেফারেন্স আবদ্ধ করতে
নির্বাহযোগ্য মধ্যে সংজ্ঞা প্রতীক. এই বিকল্প হয়
শুধুমাত্র ELF প্ল্যাটফর্মে অর্থবহ যা শেয়ার করা লাইব্রেরি সমর্থন করে এবং
অবস্থান স্বাধীন এক্সিকিউটেবল।
-বাসিম্বলিক-ফাংশন
একটি শেয়ার্ড লাইব্রেরি তৈরি করার সময়, গ্লোবাল ফাংশনের রেফারেন্স আবদ্ধ করুন
শেয়ার্ড লাইব্রেরির মধ্যে সংজ্ঞার প্রতীক, যদি থাকে। এই
বিকল্পের সাথেও ব্যবহার করা যেতে পারে --রপ্তানি-গতিশীল বিকল্প, কখন
রেফারেন্স আবদ্ধ করার জন্য একটি স্বাধীন নির্বাহযোগ্য অবস্থান তৈরি করা
এক্সিকিউটেবলের মধ্যে সংজ্ঞার গ্লোবাল ফাংশন চিহ্ন।
এই বিকল্পটি শুধুমাত্র ELF প্ল্যাটফর্মে অর্থবহ যা সমর্থন করে
শেয়ার্ড লাইব্রেরি এবং অবস্থান স্বাধীন এক্সিকিউটেবল।
--ডাইনামিক-তালিকা=ডাইনামিক-তালিকা-ফাইল
লিঙ্কারে একটি গতিশীল তালিকা ফাইলের নাম উল্লেখ করুন। এই
একটি তালিকা নির্দিষ্ট করার জন্য ভাগ করা লাইব্রেরি তৈরি করার সময় সাধারণত ব্যবহৃত হয়
বিশ্বব্যাপী প্রতীক যার রেফারেন্সের সাথে আবদ্ধ হওয়া উচিত নয়
ভাগ করা লাইব্রেরির মধ্যে সংজ্ঞা, বা গতিশীলভাবে তৈরি
লিঙ্ক করা এক্সিকিউটেবল চিহ্নগুলির একটি তালিকা নির্দিষ্ট করতে যা হওয়া উচিত
এক্সিকিউটেবলের প্রতীক টেবিলে যোগ করা হয়েছে। এই বিকল্প শুধুমাত্র
ELF প্ল্যাটফর্মে অর্থবহ যা ভাগ করা লাইব্রেরি সমর্থন করে।
গতিশীল তালিকার বিন্যাস সংস্করণ নোডের মতোই
সুযোগ এবং নোডের নাম ছাড়াই। দেখা সংস্করণ আরও তথ্যের জন্য.
--ডাইনামিক-তালিকা-ডেটা
ডায়নামিক তালিকায় সমস্ত গ্লোবাল ডেটা চিহ্ন অন্তর্ভুক্ত করুন।
--ডাইনামিক-তালিকা-সিপিপি-নতুন
C++ অপারেটরের জন্য বিল্টইন ডায়নামিক তালিকা প্রদান করুন এবং মুছে দিন।
এটি মূলত শেয়ার্ড libstdc++ তৈরির জন্য উপযোগী।
--ডাইনামিক-লিস্ট-সিপিপি-টাইপইনফো
C++ রানটাইমের জন্য অন্তর্নির্মিত গতিশীল তালিকা প্রদান করুন
সনাক্তকরণ।
--চেক-বিভাগ
--না-চেক-বিভাগ
লিঙ্কারকে জিজ্ঞেস করে না সেগুলি হওয়ার পরে বিভাগ ঠিকানাগুলি পরীক্ষা করতে
কোন ওভারল্যাপ আছে কিনা তা দেখতে বরাদ্দ করা হয়েছে। সাধারণত লিঙ্কার
এই চেকটি সঞ্চালন করবে, এবং যদি এটি কোনো ওভারল্যাপ খুঁজে পায় তবে এটি হবে
উপযুক্ত ত্রুটি বার্তা উত্পাদন. লিঙ্কার সম্পর্কে জানেন, এবং
ওভারলে বিভাগের জন্য ভাতা তৈরি করে। ডিফল্ট
কমান্ড লাইন সুইচ ব্যবহার করে আচরণ পুনরুদ্ধার করা যেতে পারে
--চেক-বিভাগ. সেকশন ওভারল্যাপ সাধারণত চেক করা হয় না
স্থানান্তরযোগ্য লিঙ্ক। আপনি ব্যবহার করে যে ক্ষেত্রে চেক জোর করতে পারেন
দ্য --চেক-বিভাগ বিকল্প।
--কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি
--নো-কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি
এই বিকল্পটি উল্লেখিত গতিশীল লাইব্রেরির চিকিৎসাকে প্রভাবিত করে
DT_NEEDED ট্যাগ দ্বারা ভিতরে ELF ডাইনামিক লাইব্রেরি উল্লেখিত
কমান্ড লাইন। সাধারণত লিঙ্কার একটি DT_NEEDED ট্যাগ যোগ করবে না
একটি DT_NEEDED ট্যাগে উল্লিখিত প্রতিটি লাইব্রেরির জন্য আউটপুট বাইনারি
ইনপুট ডাইনামিক লাইব্রেরি। সঙ্গে --কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি উপর নির্দিষ্ট
কমান্ড লাইন তবে যেকোনো গতিশীল লাইব্রেরি যা এটি অনুসরণ করবে
তাদের DT_NEEDED এন্ট্রি যোগ করা আছে। ডিফল্ট আচরণ হতে পারে
দিয়ে পুনরুদ্ধার করা হয়েছে --নো-কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি.
এই বিকল্পটি প্রতীকগুলির রেজোলিউশনের উপরও প্রভাব ফেলে
গতিশীল লাইব্রেরি। সঙ্গে --কপি-ডিটি-প্রয়োজনীয়-এন্ট্রি গতিশীল লাইব্রেরি
কমান্ড লাইনে উল্লিখিত পুনরাবৃত্তভাবে অনুসন্ধান করা হবে,
অন্য লাইব্রেরিতে তাদের DT_NEEDED ট্যাগ অনুসরণ করে, যাতে
আউটপুট বাইনারি দ্বারা প্রয়োজনীয় চিহ্নগুলি সমাধান করুন। ডিফল্ট সহ
যদিও এটি অনুসরণ করে গতিশীল লাইব্রেরিগুলির অনুসন্ধান সেটিং
ডায়নামিক লাইব্রেরির সাথেই থেমে যাবে। কোনো DT_NEEDED লিঙ্ক থাকবে না
প্রতীক সমাধান করতে traversed করা.
--ক্রেফ
একটি ক্রস রেফারেন্স টেবিল আউটপুট. যদি একটি লিঙ্কার ম্যাপ ফাইল করা হয়
উত্পন্ন, ক্রস রেফারেন্স টেবিল মানচিত্র ফাইলে মুদ্রিত হয়.
অন্যথায়, এটি স্ট্যান্ডার্ড আউটপুটে মুদ্রিত হয়।
টেবিলের বিন্যাস ইচ্ছাকৃতভাবে সহজ, যাতে এটি হতে পারে
প্রয়োজনে সহজেই একটি স্ক্রিপ্ট দ্বারা প্রক্রিয়া করা হয়। প্রতীক ছাপা হয়
আউট, নাম অনুসারে সাজানো। প্রতিটি প্রতীকের জন্য, ফাইলের নামের একটি তালিকা
দেওয়া যদি প্রতীক সংজ্ঞায়িত করা হয়, তালিকাভুক্ত প্রথম ফাইল হল
সংজ্ঞার অবস্থান। যদি প্রতীকটিকে সাধারণ হিসাবে সংজ্ঞায়িত করা হয়
মান তারপর যে কোনো ফাইল যেখানে এটি ঘটবে পরবর্তী প্রদর্শিত হবে. অবশেষে যে কোনো
প্রতীক উল্লেখ করা ফাইল তালিকাভুক্ত করা হয়.
--কোন-সংজ্ঞায়িত-সাধারণ
এই বিকল্পটি সাধারণ চিহ্নগুলিতে ঠিকানাগুলির নিয়োগকে বাধা দেয়।
স্ক্রিপ্ট কমান্ড "INHIBIT_COMMON_ALLOCATION" একই প্রভাব আছে।
সার্জারির --কোন-সংজ্ঞায়িত-সাধারণ অপশন ডিক্যুপলিং করার সিদ্ধান্ত নিতে দেয়
আউটপুট পছন্দ থেকে সাধারণ চিহ্নগুলিতে ঠিকানা বরাদ্দ করুন
ফাইলের ধরন; অন্যথায় একটি নন-রিলোকেটেবল আউটপুট টাইপ বরাদ্দ করতে বাধ্য করে
সাধারণ চিহ্নের ঠিকানা। ব্যবহার --কোন-সংজ্ঞায়িত-সাধারণ অনুমতি
সাধারণ প্রতীক যা একটি শেয়ার্ড লাইব্রেরি থেকে উল্লেখ করা হয়
শুধুমাত্র প্রধান প্রোগ্রামে নির্ধারিত ঠিকানা। এই নির্মূল
শেয়ার্ড লাইব্রেরিতে অব্যবহৃত ডুপ্লিকেট স্থান, এবং কোনো বাধা দেয়
সেখানে ভুল ডুপ্লিকেট সমাধানের সম্ভাব্য বিভ্রান্তি
রানটাইমের জন্য বিশেষ অনুসন্ধান পাথ সহ অনেকগুলি গতিশীল মডিউল
প্রতীক রেজোলিউশন।
--defsym=প্রতীক=অভিব্যক্তি
আউটপুট ফাইলে একটি বিশ্বব্যাপী প্রতীক তৈরি করুন, যার মধ্যে পরম রয়েছে
ঠিকানা প্রদত্ত অভিব্যক্তি. আপনি এই বিকল্পটি যতবার ব্যবহার করতে পারেন
কমান্ড লাইনে একাধিক চিহ্ন সংজ্ঞায়িত করার জন্য প্রয়োজনীয়। ক
পাটিগণিত সীমিত ফর্ম জন্য সমর্থিত অভিব্যক্তি এই
প্রসঙ্গ: আপনি একটি হেক্সাডেসিমেল ধ্রুবক বা একটি নাম দিতে পারেন
বিদ্যমান প্রতীক, অথবা হেক্সাডেসিমেল যোগ বা বিয়োগ করতে "+" এবং "-" ব্যবহার করুন
ধ্রুবক বা চিহ্ন। আপনার যদি আরও বিস্তৃত অভিব্যক্তির প্রয়োজন হয়,
একটি স্ক্রিপ্ট থেকে লিঙ্কার কমান্ড ভাষা ব্যবহার করে বিবেচনা করুন। বিঃদ্রঃ:
মধ্যে কোন সাদা স্থান থাকা উচিত নয় প্রতীক, সমান চিহ্ন
("="), এবং অভিব্যক্তি.
-- demangle[=শৈলী]
--নো-দেমঙ্গল
এই বিকল্পগুলি ভুল করে প্রতীকের নামগুলিকে বিচ্ছিন্ন করতে হবে কিনা তা নিয়ন্ত্রণ করে৷
বার্তা এবং অন্যান্য আউটপুট। যখন লিঙ্কারকে বলা হয় ডিম্যানগল করতে, এটা
একটি পাঠযোগ্য ফ্যাশনে প্রতীক নাম উপস্থাপন করার চেষ্টা করে: এটি স্ট্রিপ করে
লিডিং আন্ডারস্কোর যদি সেগুলি অবজেক্ট ফাইল ফরম্যাটে ব্যবহার করা হয়, এবং
C++ ম্যাঙ্গলড চিহ্নের নামগুলিকে ব্যবহারকারীর পাঠযোগ্য নামগুলিতে রূপান্তরিত করে।
বিভিন্ন কম্পাইলারের বিভিন্ন ম্যাঙ্গলিং শৈলী থাকে। ঐচ্ছিক
একটি উপযুক্ত চয়ন করতে demangling শৈলী যুক্তি ব্যবহার করা যেতে পারে
আপনার কম্পাইলার জন্য demangling শৈলী. লিঙ্কার দ্বারা বিচ্ছিন্ন করা হবে
পরিবেশ পরিবর্তনশীল না হলে ডিফল্ট COLLECT_NO_DEMANGLE সেট করা হয়
এই বিকল্পগুলি ডিফল্ট ওভাররাইড করতে ব্যবহার করা যেতে পারে।
-Iফাইল
--ডাইনামিক-লিংকার=ফাইল
ডায়নামিক লিঙ্কারের নাম সেট করুন। এটি তখনই অর্থবহ হয় যখন
গতিশীলভাবে লিঙ্কযুক্ত ELF এক্সিকিউটেবল তৈরি করা। ডিফল্ট গতিশীল
লিঙ্কার সাধারণত সঠিক; আপনি কি জানেন যদি না এই ব্যবহার করবেন না
করছে.
--নো-ডাইনামিক-লিংকার
একটি এক্সিকিউটেবল ফাইল তৈরি করার সময়, একটি ডায়নামিক জন্য অনুরোধ বাদ দিন
লিঙ্কার লোড-টাইমে ব্যবহার করা হবে। এটি শুধুমাত্র ELF এর জন্য অর্থপূর্ণ
এক্সিকিউটেবল যা গতিশীল স্থানান্তর ধারণ করে এবং সাধারণত প্রয়োজন হয়
এন্ট্রি পয়েন্ট কোড যা এই স্থানান্তর প্রক্রিয়াকরণ করতে সক্ষম।
--মারাত্মক-সতর্কতা
--নো-মারাত্মক-সতর্কতা
সমস্ত সতর্কতাকে ত্রুটি হিসাবে বিবেচনা করুন। ডিফল্ট আচরণ হতে পারে
বিকল্প দিয়ে পুনরুদ্ধার করা হয়েছে --নো-মারাত্মক-সতর্কতা.
--force-exe-প্রত্যয়
নিশ্চিত করুন যে একটি আউটপুট ফাইলের একটি .exe প্রত্যয় আছে।
যদি একটি সফলভাবে নির্মিত সম্পূর্ণ লিঙ্কযুক্ত আউটপুট ফাইলে একটি না থাকে
".exe" বা ".dll" প্রত্যয়, এই বিকল্পটি লিঙ্কারকে অনুলিপি করতে বাধ্য করে
একটি ".exe" প্রত্যয় সহ একই নামের একটিতে আউটপুট ফাইল। এই
একটি তে অপরিবর্তিত ইউনিক্স মেকফাইলস ব্যবহার করার সময় বিকল্পটি কার্যকর
মাইক্রোসফ্ট উইন্ডোজ হোস্ট, যেহেতু উইন্ডোজের কিছু সংস্করণ চলবে না
ইমেজ যদি না এটি একটি ".exe" প্রত্যয় শেষ হয়।
--gc-বিভাগ
--no-gc-বিভাগ
অব্যবহৃত ইনপুট বিভাগের আবর্জনা সংগ্রহ সক্ষম করুন। এটা উপেক্ষা করা হয়
এই বিকল্পটিকে সমর্থন করে না এমন লক্ষ্যগুলির উপর। ডিফল্ট আচরণ
(এই আবর্জনা সংগ্রহ না করার) দ্বারা পুনরুদ্ধার করা যেতে পারে
নির্দিষ্ট করা --no-gc-বিভাগ কমান্ড লাইনে। যে আবর্জনা নোট
COFF এবং PE বিন্যাস লক্ষ্যগুলির জন্য সংগ্রহ সমর্থিত, কিন্তু
বাস্তবায়ন বর্তমানে পরীক্ষামূলক বলে মনে করা হয়।
--gc-বিভাগ কোন ইনপুট বিভাগগুলি পরীক্ষা করে ব্যবহার করা হবে তা নির্ধারণ করে
প্রতীক এবং স্থানান্তর। এন্ট্রি প্রতীক ধারণকারী বিভাগ
এবং কমান্ড-লাইনে অনির্ধারিত প্রতীক ধারণকারী সমস্ত বিভাগ
রাখা হবে, যেমন চিহ্ন সম্বলিত বিভাগগুলি দ্বারা উল্লেখ করা হয়েছে
গতিশীল বস্তু। উল্লেখ্য যে শেয়ার্ড লাইব্রেরি তৈরি করার সময়,
লিঙ্কারকে অবশ্যই অনুমান করতে হবে যে কোনও দৃশ্যমান প্রতীক উল্লেখ করা হয়েছে। একদা
বিভাগগুলির এই প্রাথমিক সেটটি নির্ধারণ করা হয়েছে, লিঙ্কার
তাদের দ্বারা উল্লিখিত যে কোনও বিভাগ ব্যবহৃত হিসাবে পুনরাবৃত্তিমূলকভাবে চিহ্নিত করে
স্থানান্তর দেখা --প্রবেশ এবং --অনির্ধারিত.
একটি আংশিক লিঙ্ক করার সময় এই বিকল্পটি সেট করা যেতে পারে (এর সাথে সক্ষম
পছন্দ -r) এক্ষেত্রে চিহ্নের রুট রাখতে হবে
একটি দ্বারা স্পষ্টভাবে নির্দিষ্ট করা হয় --প্রবেশ or --অনির্ধারিত বিকল্প বা
লিঙ্কার স্ক্রিপ্টে একটি "ENTRY" কমান্ড দ্বারা।
--প্রিন্ট-জিসি-বিভাগ
--নো-প্রিন্ট-জিসি-বিভাগ
আবর্জনা সংগ্রহের দ্বারা সরানো সমস্ত বিভাগ তালিকাভুক্ত করুন। তালিকা হল
stderr এ মুদ্রিত। এই বিকল্প শুধুমাত্র কার্যকর যদি আবর্জনা
সংগ্রহের মাধ্যমে সক্রিয় করা হয়েছে --gc-বিভাগ) বিকল্প। দ্য
ডিফল্ট আচরণ (মুছে ফেলা বিভাগগুলি তালিকাভুক্ত না করা)
উল্লেখ করে পুনরুদ্ধার করা যেতে পারে --নো-প্রিন্ট-জিসি-বিভাগ আদেশে
লাইন।
--প্রিন্ট-আউটপুট-ফরম্যাট
ডিফল্ট আউটপুট বিন্যাসের নাম মুদ্রণ করুন (সম্ভবত দ্বারা প্রভাবিত
অন্যান্য কমান্ড-লাইন বিকল্প)। এই স্ট্রিং যে প্রদর্শিত হবে
একটি "OUTPUT_FORMAT" লিঙ্কার স্ক্রিপ্ট কমান্ডে।
--প্রিন্ট-মেমরি-ব্যবহার
প্রিন্ট ব্যবহৃত আকার, মোট আকার এবং মেমরি অঞ্চলের ব্যবহৃত আকার তৈরি করা হয়েছে
সাথে স্মৃতি আদেশ এটি এমবেড করা লক্ষ্যে দরকারী
বিনামূল্যে মেমরি পরিমাণ একটি দ্রুত দৃশ্য আছে. এর বিন্যাস
আউটপুট প্রতি অঞ্চলে একটি শিরোনাম এবং একটি লাইন রয়েছে। এটি উভয়ই মানবিক
পঠনযোগ্য এবং সরঞ্জাম দ্বারা সহজে পার্সযোগ্য। এখানে একটি উদাহরণ
আউটপুট:
মেমরি অঞ্চল ব্যবহৃত আকার অঞ্চলের আকার % বয়স ব্যবহৃত হয়েছে
রম: 256 KB 1 MB 25.00%
RAM: 32 B 2 GB 0.00%
--help
স্ট্যান্ডার্ড আউটপুটে কমান্ড-লাইন বিকল্পগুলির একটি সারাংশ প্রিন্ট করুন
এবং প্রস্থান করুন।
--লক্ষ্য-সাহায্য
স্ট্যান্ডার্ডে সমস্ত লক্ষ্য নির্দিষ্ট বিকল্পগুলির একটি সারাংশ প্রিন্ট করুন
আউটপুট এবং প্রস্থান করুন।
-মানচিত্র =ম্যাপফাইল
ফাইলটিতে একটি লিঙ্ক মানচিত্র প্রিন্ট করুন ম্যাপফাইল. এর বর্ণনা দেখুন
-M বিকল্প, উপরে।
--না-মেমরি রাখা
ld সাধারণত ক্যাশে করে মেমরি ব্যবহারের উপর গতির জন্য অপ্টিমাইজ করে
মেমরিতে ইনপুট ফাইলের প্রতীক টেবিল। এই বিকল্পটি বলে ld থেকে
পরিবর্তে প্রতীক টেবিল পুনরায় পড়ার মাধ্যমে মেমরি ব্যবহারের জন্য অপ্টিমাইজ করুন
প্রয়োজনীয় হিসাবে. এই প্রয়োজন হতে পারে যদি ld মেমরি স্পেস ফুরিয়ে যায়
একটি বড় এক্সিকিউটেবল লিঙ্ক করার সময়।
--কোন-অনির্ধারিত
-z defs
নিয়মিত অবজেক্ট ফাইল থেকে অমীমাংসিত প্রতীক রেফারেন্স রিপোর্ট করুন।
লিঙ্কার একটি অ-প্রতীকী শেয়ার তৈরি করলেও এটি করা হয়
লাইব্রেরি সুইচ --[না-]অনুমতি-শ্লিব-অনির্ধারিত নিয়ন্ত্রণ করে
শেয়ার করা পাওয়া অমীমাংসিত রেফারেন্স রিপোর্ট করার জন্য আচরণ
লাইব্রেরি সংযুক্ত করা হচ্ছে।
--অনুমতি-একাধিক-সংজ্ঞা
-z muldefs
সাধারণত যখন একটি চিহ্ন একাধিকবার সংজ্ঞায়িত করা হয়, লিঙ্কার তা করবে
একটি মারাত্মক ত্রুটি রিপোর্ট করুন। এই বিকল্পগুলি একাধিক সংজ্ঞা এবং অনুমতি দেয়
প্রথম সংজ্ঞা ব্যবহার করা হবে।
--অনুমতি-শ্লিব-অনির্ধারিত
--না-অনুমতি-শ্লিব-অনির্ধারিত
শেয়ার্ড লাইব্রেরিতে অনির্ধারিত চিহ্নের অনুমতি দেয় বা অননুমোদিত করে। এই
সুইচ অনুরূপ --কোন-অনির্ধারিত যে ছাড়া এটি নির্ধারণ করে
আচরণ যখন অনির্ধারিত প্রতীকগুলি একটি ভাগ করা লাইব্রেরিতে থাকে
একটি নিয়মিত অবজেক্ট ফাইলের চেয়ে। এটা কিভাবে অনির্ধারিত প্রভাবিত করে না
নিয়মিত অবজেক্ট ফাইলের প্রতীকগুলি পরিচালনা করা হয়।
ডিফল্ট আচরণ হল কোনো অনির্ধারিত চিহ্নের জন্য ত্রুটি রিপোর্ট করা
শেয়ার্ড লাইব্রেরিতে উল্লেখ করা হয় যদি লিঙ্কার ব্যবহার করা হয়
একটি এক্সিকিউটেবল তৈরি করুন, কিন্তু লিঙ্কার ব্যবহার করা হলে তাদের অনুমতি দিতে
একটি ভাগ করা লাইব্রেরি তৈরি করতে।
শেয়ার করা অনির্ধারিত চিহ্নের রেফারেন্সের অনুমতি দেওয়ার কারণ
লিঙ্কের সময় নির্দিষ্ট লাইব্রেরিগুলি হল:
· লিঙ্কের সময় নির্দিষ্ট করা একটি ভাগ করা লাইব্রেরি একই রকম নাও হতে পারে
লোড টাইমে উপলব্ধ একটি, তাই প্রতীক হতে পারে
আসলে লোড সময়ে সমাধানযোগ্য হতে.
· কিছু অপারেটিং সিস্টেম আছে, যেমন BeOS এবং HPPA, যেখানে
ভাগ করা লাইব্রেরিতে অনির্ধারিত চিহ্নগুলি স্বাভাবিক।
উদাহরণস্বরূপ BeOS কার্নেল লোডের সময় ভাগ করা লাইব্রেরি প্যাচ করে
যে ফাংশন জন্য সবচেয়ে উপযুক্ত তা নির্বাচন করার সময়
বর্তমান স্থাপত্য। এই ব্যবহার করা হয়, উদাহরণস্বরূপ, করতে
গতিশীলভাবে একটি উপযুক্ত মেমসেট ফাংশন নির্বাচন করুন।
--কোন-অনির্ধারিত-সংস্করণ
সাধারণত যখন একটি প্রতীকের একটি অনির্ধারিত সংস্করণ থাকে, লিঙ্কারটি করবে
বাদ দাও. এই বিকল্পটি অনির্ধারিত সংস্করণ সহ চিহ্নগুলিকে অনুমোদন করে না
এর পরিবর্তে একটি মারাত্মক ত্রুটি জারি করা হবে।
--ডিফল্ট-সিমভার
এর জন্য একটি ডিফল্ট প্রতীক সংস্করণ (সোনাম) তৈরি করুন এবং ব্যবহার করুন
পরিবর্তনবিহীন রপ্তানি চিহ্ন।
--ডিফল্ট-ইমপোর্টেড-সিমভার
এর জন্য একটি ডিফল্ট প্রতীক সংস্করণ (সোনাম) তৈরি করুন এবং ব্যবহার করুন
আনভার্সনড ইম্পোর্টেড সিম্বল।
--না-সতর্কতা-অমিল
সাধারণত ld আপনি ইনপুট একসাথে লিঙ্ক করার চেষ্টা করলে একটি ত্রুটি দেবে
যে ফাইলগুলি কিছু কারণে মিলছে না, সম্ভবত কারণ তারা
বিভিন্ন প্রসেসর বা বিভিন্ন জন্য কম্পাইল করা হয়েছে
endiannesses এই বিকল্পটি বলে ld এটা নীরবে অনুমতি দেওয়া উচিত যে
যেমন সম্ভাব্য ত্রুটি। এই বিকল্পটি শুধুমাত্র যত্ন সহ ব্যবহার করা উচিত,
ক্ষেত্রে যখন আপনি কিছু বিশেষ পদক্ষেপ নিয়েছেন যা নিশ্চিত করে
লিঙ্কার ত্রুটিগুলি অনুপযুক্ত।
--না-সতর্কতা-অনুসন্ধান-অমিল
সাধারণত ld এটি একটি বেমানান লাইব্রেরি খুঁজে পেলে একটি সতর্কতা দেবে
একটি লাইব্রেরি অনুসন্ধানের সময়। এই বিকল্পটি সতর্কতাকে নীরব করে।
--নো-পুরো-আর্কাইভ
এর প্রভাব বন্ধ করুন --পুরো আর্কাইভ পরবর্তী জন্য বিকল্প
সংরক্ষণাগার ফাইল।
--noinhibit-exec
এক্সিকিউটেবল আউটপুট ফাইলটি যখনই ব্যবহারযোগ্য তখনই ধরে রাখুন।
সাধারণত, লিঙ্কার একটি আউটপুট ফাইল তৈরি করবে না যদি এটি হয়
লিঙ্ক প্রক্রিয়ার সময় ত্রুটির সম্মুখীন হয়; এটি লেখা ছাড়াই বেরিয়ে যায়
একটি আউটপুট ফাইল যখন এটি যেকোন ত্রুটি ইস্যু করে।
-নোস্টডিলিব
শুধুমাত্র কমান্ডে স্পষ্টভাবে নির্দিষ্ট করা লাইব্রেরি ডিরেক্টরি অনুসন্ধান করুন
লাইন লিঙ্কার স্ক্রিপ্টে নির্দিষ্ট করা লাইব্রেরি ডিরেক্টরি (সহ
কমান্ড লাইনে নির্দিষ্ট লিঙ্কার স্ক্রিপ্ট) উপেক্ষা করা হয়।
--ফরম্যাট=আউটপুট ফরমেট
ld একাধিক ধরনের অবজেক্ট ফাইল সমর্থন করার জন্য কনফিগার করা যেতে পারে।
যদি তোমার ld এই ভাবে কনফিগার করা হয়, আপনি ব্যবহার করতে পারেন --ফরম্যাট পছন্দ
আউটপুট অবজেক্ট ফাইলের জন্য বাইনারি বিন্যাস নির্দিষ্ট করতে। এমনকি যখন
ld বিকল্প অবজেক্ট ফরম্যাট সমর্থন করার জন্য কনফিগার করা হয়েছে, আপনি করবেন না
সাধারণত এটি নির্দিষ্ট করতে হবে, যেমন ld উত্পাদন কনফিগার করা উচিত
ডিফল্ট আউটপুট বিন্যাস হিসাবে প্রতিটি মেশিনে সবচেয়ে সাধারণ বিন্যাস।
আউটপুট ফরমেট একটি টেক্সট স্ট্রিং, একটি নির্দিষ্ট বিন্যাসের নাম
BFD লাইব্রেরি দ্বারা সমর্থিত। (আপনি উপলব্ধ বাইনারি তালিকা করতে পারেন
সঙ্গে বিন্যাস objdump -i.) স্ক্রিপ্ট কমান্ড "OUTPUT_FORMAT" করতে পারে
এছাড়াও আউটপুট বিন্যাস নির্দিষ্ট করুন, কিন্তু এই বিকল্পটি এটি ওভাররাইড করে।
-পাই
--পিক-নির্বাহযোগ্য
একটি স্বাধীন এক্সিকিউটেবল অবস্থান তৈরি করুন। এই বর্তমানে শুধুমাত্র
ELF প্ল্যাটফর্মে সমর্থিত। অবস্থান স্বাধীন এক্সিকিউটেবল হয়
শেয়ার্ড লাইব্রেরির অনুরূপ যে সেগুলি দ্বারা স্থানান্তরিত হয়৷
OS তাদের জন্য যে ভার্চুয়াল ঠিকানা বেছে নেয় তার ডায়নামিক লিঙ্কার
(যা আহ্বানের মধ্যে পরিবর্তিত হতে পারে)। গতিশীলভাবে স্বাভাবিকের মতো
লিঙ্ক করা এক্সিকিউটেবল সেগুলি কার্যকর করা যেতে পারে এবং চিহ্নগুলিকে সংজ্ঞায়িত করা হয়
এক্সিকিউটেবল শেয়ার করা লাইব্রেরি দ্বারা ওভাররাইড করা যাবে না।
-qmagic
এই বিকল্পটি Linux সামঞ্জস্যের জন্য উপেক্ষা করা হয়েছে।
-কিউ এই বিকল্পটি SVR4 সামঞ্জস্যের জন্য উপেক্ষা করা হয়েছে৷
--আরাম
--না-বিশ্রাম
মেশিন নির্ভর প্রভাব সঙ্গে একটি বিকল্প. এই বিকল্প শুধুমাত্র
কয়েকটি লক্ষ্যে সমর্থিত।
কিছু প্ল্যাটফর্মে --আরাম বিকল্প লক্ষ্য নির্দিষ্ট করে,
গ্লোবাল অপ্টিমাইজেশান যা সম্ভব হয় যখন লিঙ্কার সমাধান করে
প্রোগ্রামে অ্যাড্রেসিং, যেমন রিলাক্সিং অ্যাড্রেস মোড,
নতুন নির্দেশাবলী সংশ্লেষণ করা, বর্তমানের সংক্ষিপ্ত সংস্করণ নির্বাচন করা
নির্দেশাবলী, এবং ধ্রুবক মান সমন্বয়.
কিছু প্ল্যাটফর্মে এই লিঙ্ক টাইম গ্লোবাল অপ্টিমাইজেশান করতে পারে
ফলে নির্বাহযোগ্য অসম্ভবের প্রতীকী ডিবাগিং। এই
মাতসুশিতা MN10200 এবং MN10300 পরিবারের জন্য কেস হিসাবে পরিচিত
প্রসেসরের।
প্ল্যাটফর্মে যেখানে এটি সমর্থিত নয়, --আরাম গৃহীত হয়, কিন্তু
উপেক্ষা করা
প্ল্যাটফর্মে যেখানে --আরাম বিকল্প গৃহীত হয় --না-বিশ্রাম হতে পারে
বৈশিষ্ট্য নিষ্ক্রিয় করতে ব্যবহৃত।
--রটেন-সিম্বল-ফাইল=ফাইলের নাম
রাখা কেবল ফাইলে তালিকাভুক্ত প্রতীকগুলি ফাইলের নাম, সব বাতিল
অন্যদের। ফাইলের নাম শুধুমাত্র একটি ফ্ল্যাট ফাইল, প্রতি একটি প্রতীক নাম সহ
লাইন এই বিকল্পটি পরিবেশে বিশেষভাবে উপযোগী (যেমন
VxWorks) যেখানে একটি বড় গ্লোবাল সিম্বল টেবিল জমা হয়
ধীরে ধীরে, রান-টাইম মেমরি সংরক্ষণ করতে।
--ধারণ-চিহ্ন-ফাইল না না অনির্ধারিত প্রতীক বাদ দিন, অথবা
স্থান পরিবর্তনের জন্য প্রয়োজনীয় চিহ্ন।
আপনি শুধুমাত্র নির্দিষ্ট করতে পারেন --ধারণ-চিহ্ন-ফাইল একবার কমান্ডে
লাইন এটা ওভাররাইড করে -s এবং -S.
-rpath=Dir
রানটাইম লাইব্রেরি অনুসন্ধান পাথে একটি ডিরেক্টরি যোগ করুন। এটি ব্যবহার করা হয়
শেয়ার্ড অবজেক্টের সাথে এক্সিকিউটেবল একটি ELF লিঙ্ক করার সময়। সব -আরপাথ
আর্গুমেন্ট একত্রিত হয় এবং রানটাইম লিঙ্কারে পাঠানো হয়, যা
রানটাইমে ভাগ করা বস্তুগুলি সনাক্ত করতে তাদের ব্যবহার করে। দ্য -আরপাথ পছন্দ
শেয়ার্ড অবজেক্টগুলি সনাক্ত করার সময়ও ব্যবহৃত হয় যা দ্বারা প্রয়োজন হয়
ভাগ করা বস্তুগুলি স্পষ্টভাবে লিঙ্কে অন্তর্ভুক্ত; বর্ণনা দেখুন
এর -rpath-লিংক বিকল্প। যদি -আরপাথ একটি লিঙ্ক করার সময় ব্যবহার করা হয় না
ELF এক্সিকিউটেবল, পরিবেশ পরিবর্তনশীল বিষয়বস্তু
"LD_RUN_PATH" ব্যবহার করা হবে যদি এটি সংজ্ঞায়িত করা হয়।
সার্জারির -আরপাথ অপশনটি SunOS এও ব্যবহার করা যেতে পারে। ডিফল্টরূপে, SunOS এ,
লিঙ্কারটি সমস্তগুলির মধ্যে একটি রানটাইম অনুসন্ধান পথ তৈরি করবে -L
অপশন দেওয়া আছে। যদি একটি -আরপাথ অপশন ব্যবহার করা হয়, রানটাইম
অনুসন্ধান পাথ একচেটিয়াভাবে ব্যবহার করে গঠিত হবে -আরপাথ বিকল্প,
উপেক্ষা করে -L বিকল্প জিসিসি ব্যবহার করার সময় এটি কার্যকর হতে পারে, যা
অনেক যোগ করে -L NFS মাউন্ট করা ফাইল সিস্টেমে থাকা বিকল্পগুলি।
অন্যান্য ELF লিঙ্কারের সাথে সামঞ্জস্যের জন্য, যদি -R বিকল্প হয়
একটি ফাইলের নামের পরিবর্তে একটি ডিরেক্টরির নাম দ্বারা অনুসরণ করা হয়
হিসাবে বিবেচনা করা হয় -আরপাথ বিকল্প।
-rpath-link=Dir
ELF বা SunOS ব্যবহার করার সময়, একটি ভাগ করা লাইব্রেরির অন্যটির প্রয়োজন হতে পারে।
এটি ঘটে যখন একটি "ld -shared" লিঙ্ক একটি শেয়ার করা লাইব্রেরি অন্তর্ভুক্ত করে
ইনপুট ফাইলগুলির মধ্যে একটি।
যখন লিঙ্কার এমন একটি নির্ভরতার সম্মুখীন হয় যখন একটি অ-
শেয়ার্ড, অ-রিলোকেটেবল লিঙ্ক, এটি স্বয়ংক্রিয়ভাবে সনাক্ত করার চেষ্টা করবে
প্রয়োজনীয় শেয়ার্ড লাইব্রেরি এবং লিঙ্কে এটি অন্তর্ভুক্ত করুন, যদি এটি হয়
স্পষ্টভাবে অন্তর্ভুক্ত নয়। এমন একটি ক্ষেত্রে, দ -rpath-লিংক পছন্দ
অনুসন্ধান করার জন্য ডিরেক্টরির প্রথম সেট নির্দিষ্ট করে। দ্য -rpath-লিংক
বিকল্পটি হয় দ্বারা ডিরেক্টরির নামের একটি ক্রম নির্দিষ্ট করতে পারে
কোলন দ্বারা পৃথক করা নামের একটি তালিকা নির্দিষ্ট করা, বা উপস্থিতির মাধ্যমে
একাধিক বার.
এই বিকল্পটি সতর্কতার সাথে ব্যবহার করা উচিত কারণ এটি অনুসন্ধানকে ওভাররাইড করে
পাথ যা একটি ভাগ করা লাইব্রেরিতে কঠিনভাবে সংকলিত হতে পারে। ভিতরে
যেমন একটি ক্ষেত্রে এটা অনিচ্ছাকৃতভাবে একটি ভিন্ন ব্যবহার করা সম্ভব
রানটাইম লিঙ্কার চেয়ে পথ অনুসন্ধান করুন.
লিঙ্কার প্রয়োজনীয় সনাক্ত করতে নিম্নলিখিত অনুসন্ধান পথ ব্যবহার করে
ভাগ করা লাইব্রেরি:
1. দ্বারা নির্দিষ্ট কোনো ডিরেক্টরি -rpath-লিংক অপশন।
2. দ্বারা নির্দিষ্ট কোনো ডিরেক্টরি -আরপাথ বিকল্প পার্থক্য
মধ্যে -আরপাথ এবং -rpath-লিংক যে ডিরেক্টরি দ্বারা নির্দিষ্ট করা হয়
-আরপাথ অপশনগুলি এক্সিকিউটেবলের মধ্যে অন্তর্ভুক্ত করা হয় এবং এ ব্যবহার করা হয়
রানটাইম, যেখানে -rpath-লিংক বিকল্প শুধুমাত্র কার্যকর
লিঙ্ক সময়। অনুসন্ধান করা হচ্ছে -আরপাথ এই ভাবে শুধুমাত্র দ্বারা সমর্থিত হয়
নেটিভ লিঙ্কার এবং ক্রস লিঙ্কার যা কনফিগার করা হয়েছে
সাথে --with-sysroot বিকল্প।
3. একটি ELF সিস্টেমে, নেটিভ লিঙ্কারদের জন্য, যদি -আরপাথ এবং
-rpath-লিংক অপশন ব্যবহার করা হয়নি, এর বিষয়বস্তু অনুসন্ধান করুন
পরিবেশ পরিবর্তনশীল "LD_RUN_PATH"।
4. SunOS এ, যদি -আরপাথ অপশন ব্যবহার করা হয়নি, কোনো অনুসন্ধান করুন
ব্যবহার করে নির্দিষ্ট ডিরেক্টরি -L অপশন।
5. একটি নেটিভ লিঙ্কারের জন্য, পরিবেশের বিষয়বস্তু অনুসন্ধান করুন
পরিবর্তনশীল "LD_LIBRARY_PATH"।
6. একটি নেটিভ ELF লিঙ্কারের জন্য, "DT_RUNPATH" এর ডিরেক্টরিগুলি বা৷
একটি ভাগ করা লাইব্রেরির "DT_RPATH" ভাগ করা অনুসন্ধান করা হয়৷
এর জন্য প্রয়োজনীয় লাইব্রেরি। যদি "DT_RPATH" এন্ট্রি উপেক্ষা করা হয়
"DT_RUNPATH" এন্ট্রি বিদ্যমান৷
7. ডিফল্ট ডিরেক্টরি, সাধারণত / lib এবং / Usr / lib.
8. একটি ELF সিস্টেমে একটি নেটিভ লিঙ্কারের জন্য, যদি ফাইলটি
/etc/ld.so.conf বিদ্যমান, যে ডিরেক্টরির তালিকা পাওয়া যায়
ফাইল.
প্রয়োজনীয় শেয়ার্ড লাইব্রেরি পাওয়া না গেলে, লিঙ্কার ইস্যু করবে
একটি সতর্কতা এবং লিঙ্কটি চালিয়ে যান।
- শেয়ার করা হয়েছে
- শেয়ারযোগ্য
একটি শেয়ার্ড লাইব্রেরি তৈরি করুন। এটি বর্তমানে শুধুমাত্র ELF-তে সমর্থিত,
XCOFF এবং SunOS প্ল্যাটফর্ম। SunOS এ, লিঙ্কার স্বয়ংক্রিয়ভাবে হবে
একটি ভাগ করা লাইব্রেরি তৈরি করুন যদি -e বিকল্প ব্যবহার করা হয় না এবং আছে
লিঙ্কে অনির্ধারিত চিহ্ন।
--সাধারণ-সাধারণ
--সর্ট-সাধারণ = আরোহী
--সর্ট-সাধারণ = অবরোহী
এই বিকল্পটি বলে ld সারিবদ্ধভাবে সাধারণ চিহ্নগুলিকে সাজাতে
ঊর্ধ্বগামী বা অবরোহী ক্রমে যখন এটি তাদের রাখে
উপযুক্ত আউটপুট বিভাগ। বিবেচিত প্রতীক প্রান্তিককরণ হয়
ষোল-বাইট বা বড়, আট-বাইট, চার-বাইট, দুই-বাইট, এবং এক-
বাইট এটি প্রান্তিককরণের কারণে প্রতীকগুলির মধ্যে ফাঁক রোধ করার জন্য
সীমাবদ্ধতা যদি কোন সাজানোর ক্রম নির্দিষ্ট না থাকে, তাহলে অবরোহন
আদেশ অনুমান করা হয়।
--সর্ট-বিভাগ = নাম
এই বিকল্পটি সমস্ত ওয়াইল্ডকার্ড বিভাগে "SORT_BY_NAME" প্রয়োগ করবে৷
লিঙ্কার স্ক্রিপ্টে নিদর্শন।
--সর্ট-বিভাগ = প্রান্তিককরণ
এই বিকল্পটি সমস্ত ওয়াইল্ডকার্ড বিভাগে "SORT_BY_ALIGNMENT" প্রয়োগ করবে৷
লিঙ্কার স্ক্রিপ্টে নিদর্শন।
-- ফাইল দ্বারা বিভক্ত[=আয়তন]
অনুরূপ, একই, সমতুল্য -- বিভক্ত-দ্বারা-রিলোক কিন্তু এর জন্য একটি নতুন আউটপুট বিভাগ তৈরি করে
প্রতিটি ইনপুট ফাইল যখন আয়তন উপনিত. আয়তন 1 এর আকারে ডিফল্ট
যদি না দেওয়া হয়।
-- রিলোক দ্বারা বিভক্ত[=গণনা]
আউটপুট ফাইলে অতিরিক্ত বিভাগ তৈরি করার চেষ্টা করে যাতে না হয়
ফাইলের একক আউটপুট বিভাগে এর চেয়ে বেশি রয়েছে গণনা
স্থানান্তর বিশাল রিলোকেটেবল ফাইল তৈরি করার সময় এটি দরকারী
COFF অবজেক্টের সাথে নির্দিষ্ট রিয়েল টাইম কার্নেলে ডাউনলোড করার জন্য
ফাইলের বিন্যাস; যেহেতু COFF 65535 এর বেশি প্রতিনিধিত্ব করতে পারে না
একটি একক বিভাগে স্থানান্তর। মনে রাখবেন এটি কাজ করতে ব্যর্থ হবে
অবজেক্ট ফাইল ফরম্যাটের সাথে যা নির্বিচারে বিভাগ সমর্থন করে না।
লিঙ্কার পৃথক ইনপুট বিভাগগুলির জন্য বিভক্ত করবে না
পুনরায় বিতরণ, তাই যদি একটি একক ইনপুট বিভাগে এর থেকে বেশি থাকে
গণনা স্থানান্তর এক আউটপুট বিভাগে যে অনেকগুলো থাকবে
স্থানান্তর গণনা 32768 এর মান ডিফল্ট।
-- পরিসংখ্যান
লিংকারের অপারেশন সম্পর্কে পরিসংখ্যান গণনা এবং প্রদর্শন করুন,
যেমন এক্সিকিউশন সময় এবং মেমরি ব্যবহার।
-সাইরুট =ডিরেক্টরি
ব্যবহার ডিরেক্টরি sysroot-এর অবস্থান হিসাবে, ওভাররাইড করে
কনফিগার-টাইম ডিফল্ট। এই বিকল্পটি শুধুমাত্র লিঙ্কার দ্বারা সমর্থিত
যেগুলি ব্যবহার করে কনফিগার করা হয়েছিল --with-sysroot.
-- ঐতিহ্যবাহী বিন্যাস
কিছু লক্ষ্যের জন্য, এর আউটপুট ld থেকে কিছু উপায়ে ভিন্ন
কিছু বিদ্যমান লিঙ্কারের আউটপুট। এই সুইচ অনুরোধ ld ব্যবহার করার জন্য
পরিবর্তে ঐতিহ্যগত বিন্যাস.
উদাহরণস্বরূপ, SunOS এ, ld প্রতীকে ডুপ্লিকেট এন্ট্রি একত্রিত করে
স্ট্রিং টেবিল এটি সম্পূর্ণ সহ একটি আউটপুট ফাইলের আকার কমাতে পারে
ডিবাগিং তথ্য 30 শতাংশের বেশি। দুর্ভাগ্যবশত, SunOS
"dbx" প্রোগ্রাম ফলাফল প্রোগ্রাম পড়তে পারে না ("gdb" নেই
ঝামেলা)। দ্য -- ঐতিহ্যবাহী বিন্যাস সুইচ বলে ld একত্রিত না করা
ডুপ্লিকেট এন্ট্রি।
--বিভাগ-শুরু=বিভাগের নাম=সংস্থা
প্রদত্ত পরম ঠিকানায় আউটপুট ফাইলের একটি বিভাগ সনাক্ত করুন
by সংস্থা. আপনি এই বিকল্পটি যতবার প্রয়োজন ততবার ব্যবহার করতে পারেন
কমান্ড লাইনে একাধিক বিভাগ সনাক্ত করুন। সংস্থা একক হতে হবে
হেক্সাডেসিমেল পূর্ণসংখ্যা; অন্যান্য লিঙ্কারের সাথে সামঞ্জস্যের জন্য, আপনি করতে পারেন
নেতৃস্থানীয় বাদ দিন 0x সাধারণত হেক্সাডেসিমেল মানের সাথে যুক্ত।
বিঃদ্রঃ: মধ্যে কোন সাদা স্থান থাকা উচিত নয় বিভাগের নাম, দ্য
সমান চিহ্ন ("="), এবং সংস্থা.
-টিবিএসএস =সংস্থা
-Tdata=সংস্থা
-টেক্সট=সংস্থা
একই রকম --বিভাগ-শুরু, ".bss", ".data" বা ".text" হিসেবে
বিভাগের নাম.
-টেক্সট-সেগমেন্ট=সংস্থা
একটি ELF এক্সিকিউটেবল তৈরি করার সময়, এটি এর ঠিকানা সেট করবে
টেক্সট সেগমেন্টের প্রথম বাইট।
-ট্রোডাটা-সেগমেন্ট=সংস্থা
একটি টার্গেটের জন্য একটি ELF এক্সিকিউটেবল বা শেয়ার্ড অবজেক্ট তৈরি করার সময় যেখানে
শুধুমাত্র পঠনযোগ্য ডেটা তার নিজস্ব সেগমেন্ট থেকে আলাদা
এক্সিকিউটেবল টেক্সট, এটি প্রথম বাইটের ঠিকানা সেট করবে
শুধুমাত্র পঠনযোগ্য ডেটা সেগমেন্ট।
-Tldata-সেগমেন্ট=সংস্থা
x86-64 মাধ্যমের জন্য একটি ELF এক্সিকিউটেবল বা শেয়ার করা অবজেক্ট তৈরি করার সময়
মেমরি মডেল, এটি প্রথম বাইটের ঠিকানা সেট করবে
ldata সেগমেন্ট।
--অমীমাংসিত-প্রতীক=পদ্ধতি
অমীমাংসিত প্রতীকগুলি কীভাবে পরিচালনা করবেন তা নির্ধারণ করুন। সেখানে চার
জন্য সম্ভাব্য মান পদ্ধতি:
সবগুলো উপেক্ষা করুন
কোনো অমীমাংসিত প্রতীক রিপোর্ট করবেন না.
রিপোর্ট-সমস্ত
সব অমীমাংসিত প্রতীক রিপোর্ট করুন. এটি ডিফল্ট।
অবজেক্ট-ফাইলের মধ্যে উপেক্ষা করুন
শেয়ার করা অমীমাংসিত চিহ্নের প্রতিবেদন করুন
লাইব্রেরি, তবে সেগুলিকে উপেক্ষা করুন যদি তারা নিয়মিত বস্তু থেকে আসে
ফাইল।
উপেক্ষা-ইন-শেয়ারড-লিবস
নিয়মিত অবজেক্ট ফাইল থেকে আসা অমীমাংসিত চিহ্নগুলি রিপোর্ট করুন,
কিন্তু যদি তারা শেয়ার করা লাইব্রেরি থেকে আসে তবে তাদের উপেক্ষা করুন। এটা পারে
একটি গতিশীল বাইনারি তৈরি করার সময় দরকারী হবে এবং এটি জানা যায় যে
সব শেয়ার করা লাইব্রেরি যে এটি উল্লেখ করা উচিত
লিঙ্কারের কমান্ড লাইনে অন্তর্ভুক্ত।
ভাগ করা লাইব্রেরিগুলির জন্য তাদের নিজস্ব আচরণও হতে পারে
দ্বারা নিয়ন্ত্রিত --[না-]অনুমতি-শ্লিব-অনির্ধারিত বিকল্প।
সাধারণত লিঙ্কার প্রতিটির জন্য একটি ত্রুটি বার্তা তৈরি করবে
রিপোর্ট অমীমাংসিত প্রতীক কিন্তু বিকল্প --সতর্ক-অমীমাংসিত-প্রতীক
এটি একটি সতর্কতায় পরিবর্তন করতে পারেন।
--dll-ভার্বোস
--ভার্বোস[=NUMBER টি]
এর জন্য সংস্করণ নম্বর প্রদর্শন করুন ld এবং লিঙ্কার ইমুলেশন তালিকা করুন
সমর্থিত কোন ইনপুট ফাইলগুলি খোলা যাবে এবং কোনটি খোলা যাবে না তা প্রদর্শন করুন।
লিঙ্কার দ্বারা ব্যবহৃত লিঙ্কার স্ক্রিপ্ট প্রদর্শন করুন। ঐচ্ছিক হলে
NUMBER টি যুক্তি > 1, প্লাগইন প্রতীকের অবস্থাও প্রদর্শিত হবে।
--সংস্করণ-স্ক্রিপ্ট=সংস্করণ-স্ক্রিপ্ট ফাইল
লিঙ্কারে একটি সংস্করণ স্ক্রিপ্টের নাম উল্লেখ করুন। এই
অতিরিক্ত নির্দিষ্ট করার জন্য ভাগ করা লাইব্রেরি তৈরি করার সময় সাধারণত ব্যবহৃত হয়
লাইব্রেরির জন্য সংস্করণ অনুক্রম সম্পর্কে তথ্য
তৈরি এই বিকল্পটি শুধুমাত্র ELF প্ল্যাটফর্মে সম্পূর্ণরূপে সমর্থিত
যা শেয়ার্ড লাইব্রেরি সমর্থন করে; দেখা সংস্করণ. এটা আংশিক
PE প্ল্যাটফর্মে সমর্থিত, যা ফিল্টার করতে সংস্করণ স্ক্রিপ্ট ব্যবহার করতে পারে
স্বয়ংক্রিয়-রপ্তানি মোডে প্রতীক দৃশ্যমানতা: যে কোনো চিহ্ন চিহ্নিত স্থানীয় in
সংস্করণ স্ক্রিপ্ট রপ্তানি করা হবে না.
--সতর্ক-সাধারণ
একটি সাধারণ চিহ্ন অন্য একটি সাধারণ চিহ্নের সাথে মিলিত হলে সতর্ক করুন বা
একটি প্রতীক সংজ্ঞা সহ। ইউনিক্স লিঙ্কাররা এটিকে কিছুটা অগোছালো করার অনুমতি দেয়
অনুশীলন, কিন্তু কিছু অন্যান্য অপারেটিং সিস্টেমের লিঙ্কার না. এই
বিকল্পটি আপনাকে বিশ্বব্যাপী সমন্বয় থেকে সম্ভাব্য সমস্যাগুলি খুঁজে পেতে দেয়
প্রতীক দুর্ভাগ্যবশত, কিছু সি লাইব্রেরি এই অনুশীলন ব্যবহার করে, তাই আপনি
লাইব্রেরির পাশাপাশি এর মধ্যেও প্রতীক সম্পর্কে কিছু সতর্কতা পেতে পারে
আপনার প্রোগ্রাম।
তিন ধরনের গ্লোবাল চিহ্ন রয়েছে, এখানে C দ্বারা চিত্রিত হয়েছে
উদাহরণ:
কোন int i = 1;
একটি সংজ্ঞা, যা এর প্রারম্ভিক ডেটা বিভাগে যায়
আউটপুট ফাইল.
extern কোন int i;
একটি অনির্ধারিত রেফারেন্স, যা স্থান বরাদ্দ করে না। সেখানে
পরিবর্তনশীলের জন্য হয় একটি সংজ্ঞা বা একটি সাধারণ প্রতীক হতে হবে
কোথাও।
কোন int i;
একটি সাধারণ প্রতীক। যদি শুধুমাত্র (এক বা একাধিক) সাধারণ থাকে
একটি ভেরিয়েবলের জন্য প্রতীক, এটি অপ্রবর্তিত ডেটা এলাকায় যায়
আউটপুট ফাইলের। লিঙ্কার একাধিক সাধারণ প্রতীক মার্জ করে
একই ভেরিয়েবলের জন্য একটি একক প্রতীক। যদি তারা হয়
বিভিন্ন আকার, এটি সবচেয়ে বড় আকার বাছাই করে। লিঙ্কার একটি বাঁক
একটি ঘোষণার মধ্যে সাধারণ প্রতীক, যদি এর একটি সংজ্ঞা থাকে
একই পরিবর্তনশীল।
সার্জারির --সতর্ক-সাধারণ বিকল্পটি পাঁচ ধরণের সতর্কতা তৈরি করতে পারে। প্রতিটি
সতর্কতা এক জোড়া লাইন নিয়ে গঠিত: প্রথমটি প্রতীকটি বর্ণনা করে
সবেমাত্র সম্মুখীন হয়েছে, এবং দ্বিতীয়টি পূর্ববর্তী প্রতীক বর্ণনা করে
একই নামের সম্মুখীন. দুটি প্রতীকের একটি বা দুটি
একটি সাধারণ প্রতীক হবে।
1. একটি সাধারণ প্রতীককে একটি রেফারেন্সে পরিণত করা, কারণ সেখানে আছে
ইতিমধ্যে প্রতীক জন্য একটি সংজ্ঞা.
( ): warning: common of ` '
সংজ্ঞা দ্বারা ওভাররাইড করা হয়েছে
( ): সতর্কতা: এখানে সংজ্ঞায়িত
2. একটি সাধারণ চিহ্নকে একটি রেফারেন্সে পরিণত করা, কারণ পরবর্তীতে
প্রতীক জন্য সংজ্ঞা সম্মুখীন হয়. এই হিসাবে একই
পূর্ববর্তী ক্ষেত্রে, ব্যতীত যে চিহ্নগুলি a এ সম্মুখীন হয়
ভিন্ন আদেশ।
( ): সতর্কতা: ` এর সংজ্ঞা '
ওভাররাইডিং সাধারণ
( ): সতর্কতা: সাধারণ এখানে
3. পূর্ববর্তী একই আকারের সাধারণের সাথে একটি সাধারণ প্রতীক মার্জ করা
প্রতীক।
( ): সতর্কতা: একাধিক সাধারণ
এর ` '
( ): সতর্কতা: পূর্ববর্তী সাধারণ এখানে
4. পূর্ববর্তী বৃহত্তর সাধারণ প্রতীকের সাথে একটি সাধারণ চিহ্ন একত্রিত করা।
( ): warning: common of ` '
বড় সাধারণ দ্বারা ওভাররাইড করা হয়েছে
( ): সতর্কতা: বড় সাধারণ এখানে
5. পূর্ববর্তী ছোট সাধারণ প্রতীকের সাথে একটি সাধারণ চিহ্ন একত্রিত করা।
এটি পূর্ববর্তী ক্ষেত্রের মতোই, প্রতীকগুলি ছাড়া
একটি ভিন্ন ক্রমে সম্মুখীন হয়.
( ): warning: common of ` '
ওভাররাইডিং ছোট সাধারণ
( ): সতর্কতা: ছোট সাধারণ এখানে
--সতর্ক-নির্মাতা
কোনো গ্লোবাল কনস্ট্রাক্টর ব্যবহার করা হলে সতর্ক করুন। এই জন্য শুধুমাত্র দরকারী
কয়েকটি অবজেক্ট ফাইল ফরম্যাট। COFF বা ELF এর মত ফরম্যাটের জন্য,
লিঙ্কার গ্লোবাল কনস্ট্রাক্টর ব্যবহার সনাক্ত করতে পারে না।
--ওয়ার্ন-মাল্টিপল-জিপি
আউটপুটে একাধিক গ্লোবাল পয়েন্টার মান প্রয়োজন হলে সতর্ক করুন
ফাইল এটি শুধুমাত্র নির্দিষ্ট প্রসেসরের জন্য অর্থবহ, যেমন
আলফা। বিশেষত, কিছু প্রসেসর বড়-মূল্যবান ধ্রুবক রাখে
একটি বিশেষ বিভাগ। একটি বিশেষ রেজিস্টার (গ্লোবাল পয়েন্টার) পয়েন্ট
এই বিভাগের মাঝখানে, যাতে ধ্রুবকগুলি লোড করা যায়
একটি বেস-রেজিস্টার আপেক্ষিক ঠিকানা মোডের মাধ্যমে দক্ষতার সাথে। থেকে
বেস-রেজিস্টার আপেক্ষিক মোডে অফসেট স্থির এবং অপেক্ষাকৃত
ছোট (যেমন, 16 বিট), এটি ধ্রুবকের সর্বাধিক আকারকে সীমাবদ্ধ করে
পুল সুতরাং, বড় প্রোগ্রামগুলিতে, এটি প্রায়শই ব্যবহার করা প্রয়োজন
একাধিক গ্লোবাল পয়েন্টার মান যাতে সব সম্বোধন করতে সক্ষম হয়
সম্ভাব্য ধ্রুবক। এই বিকল্পটি একটি সতর্কতা জারি করে
যখনই এই ঘটনা ঘটে।
--একবার সতর্ক করুন
প্রতিটি অনির্ধারিত চিহ্নের জন্য শুধুমাত্র একবার সতর্ক করুন, প্রতি একবারের পরিবর্তে
মডিউল যা এটি উল্লেখ করে।
--সতর্ক-বিভাগ-সারিবদ্ধ
একটি আউটপুট বিভাগের ঠিকানা কারণে পরিবর্তন করা হলে সতর্ক করুন
প্রান্তিককরণ সাধারণত, প্রান্তিককরণ একটি ইনপুট দ্বারা সেট করা হবে
অধ্যায়. ঠিকানাটি কেবলমাত্র পরিবর্তন করা হবে যদি এটি স্পষ্টভাবে না হয়
নির্দিষ্ট করা অর্থাৎ, যদি "SECTIONS" কমান্ড একটি নির্দিষ্ট না করে
বিভাগের জন্য শুরু ঠিকানা।
--ওয়ার্ন-শেয়ারড-টেক্সট্রেল
যদি লিঙ্কার একটি ভাগ করা বস্তুতে একটি DT_TEXTREL যোগ করে তাহলে সতর্ক করুন৷
--সতর্ক-বিকল্প-এমন
কোনো বস্তুর বিকল্প ELF মেশিন কোড থাকলে সতর্ক করুন।
--সতর্ক-অমীমাংসিত-প্রতীক
যদি লিঙ্কার একটি অমীমাংসিত প্রতীক রিপোর্ট করতে যাচ্ছে (দেখুন
পছন্দ --অমীমাংসিত-প্রতীক) এটি সাধারণত একটি ত্রুটি তৈরি করবে।
এই বিকল্পটি এটির পরিবর্তে একটি সতর্কতা তৈরি করে।
--ত্রুটি-অমীমাংসিত-প্রতীক
এটি লিংকারের ডিফল্ট ত্রুটি তৈরি করার আচরণ পুনরুদ্ধার করে
যখন এটি অমীমাংসিত প্রতীক রিপোর্ট করছে।
--পুরো আর্কাইভ
কমান্ড লাইনের পরে উল্লিখিত প্রতিটি সংরক্ষণাগারের জন্য
--পুরো আর্কাইভ বিকল্প, আর্কাইভে প্রতিটি অবজেক্ট ফাইল অন্তর্ভুক্ত করুন
প্রয়োজনীয় বস্তুর জন্য সংরক্ষণাগার অনুসন্ধানের পরিবর্তে লিঙ্কটি
নথি পত্র. এটি সাধারণত একটি আর্কাইভ ফাইলকে শেয়ার করাতে পরিণত করতে ব্যবহৃত হয়
লাইব্রেরি, প্রতিটি বস্তুকে ফলস্বরূপ অন্তর্ভুক্ত করতে বাধ্য করে
ভাগ করা লাইব্রেরি। এই বিকল্পটি একাধিকবার ব্যবহার করা যেতে পারে।
জিসিসি থেকে এই বিকল্পটি ব্যবহার করার সময় দুটি নোট: প্রথমত, জিসিসি জানে না
এই বিকল্প সম্পর্কে, তাই আপনি ব্যবহার করতে হবে -Wl, -পুরো-আর্কাইভ। দ্বিতীয়,
ব্যবহার করতে ভুলবেন না -Wl,-নো-পুরো-আর্কাইভ আপনার তালিকার পরে
সংরক্ষণাগার, কারণ gcc আপনার সংরক্ষণাগারগুলির নিজস্ব তালিকা যুক্ত করবে
লিঙ্ক এবং আপনি এই পতাকা সেইসাথে প্রভাবিত করতে চান না.
-- মোড়ানো=প্রতীক
জন্য একটি wrapper ফাংশন ব্যবহার করুন প্রতীক. কোন অনির্ধারিত রেফারেন্স
প্রতীক সমাধান করা হবে "__wrap_প্রতীক". কোনো অনির্ধারিত
রেফারেন্স "__real_প্রতীক" সমাধান করা হবে প্রতীক.
এটি একটি সিস্টেম ফাংশনের জন্য একটি মোড়ক প্রদান করতে ব্যবহার করা যেতে পারে। দ্য
মোড়ক ফাংশন বলা উচিত "__wrap_প্রতীক". যদি এটা ইচ্ছা করে
সিস্টেম ফাংশন কল করুন, এটি "__real_" কল করা উচিতপ্রতীক".
এখানে একটি তুচ্ছ উদাহরণ:
অকার্যকর *
__wrap_malloc (size_t c)
{
printf ("malloc %zu\n" দিয়ে ডাকা হয়, c);
রিটার্ন __real_malloc (c);
}
আপনি এই ফাইল ব্যবহার করে অন্য কোড লিঙ্ক যদি -- মোড়ানো malloc, তারপর সব
"malloc" কে কল করলে এর পরিবর্তে ফাংশনটিকে "__wrap_malloc" বলা হবে।
"__wrap_malloc"-এ "__real_malloc"-এ কল আসলকে কল করবে
"malloc" ফাংশন।
আপনি একটি "__real_malloc" ফাংশন প্রদান করতে পারেন, যাতে
ছাড়া লিঙ্ক -- মোড়ানো বিকল্প সফল হবে। আপনি যদি এই কাজ, আপনি
একই ফাইলে "__real_malloc" এর সংজ্ঞা রাখা উচিত নয়
"__wrap_malloc" হিসাবে; যদি আপনি তা করেন, সমাবেশকারী কলটি সমাধান করতে পারে
লিঙ্কার এটিকে "malloc" এ মোড়ানোর সুযোগ পাওয়ার আগে।
--eh-ফ্রেম-এইচডিআর
".eh_frame_hdr" বিভাগ এবং ELF তৈরির অনুরোধ করুন
"PT_GNU_EH_FRAME" সেগমেন্ট হেডার।
--no-ld-উত্পন্ন-আনওয়াইন্ড-তথ্য
উত্পন্ন লিঙ্কারের জন্য ".eh_frame" unwind তথ্য তৈরির অনুরোধ করুন৷
কোড বিভাগ যেমন PLT। লিঙ্কার হলে এই বিকল্পটি ডিফল্টরূপে চালু থাকে
উত্পন্ন unwind তথ্য সমর্থিত.
--enable-new-dtags
--অক্ষম-নতুন-ডিট্যাগ
এই লিঙ্কারটি ELF-তে নতুন ডায়নামিক ট্যাগ তৈরি করতে পারে। কিন্তু বয়স্ক
ELF সিস্টেম তাদের বুঝতে পারে না. যদি আপনি উল্লেখ করেন
--enable-new-dtags, নতুন ডায়নামিক ট্যাগ প্রয়োজন অনুযায়ী তৈরি করা হবে
এবং পুরানো ডায়নামিক ট্যাগ বাদ দেওয়া হবে। যদি আপনি উল্লেখ করেন
--অক্ষম-নতুন-ডিট্যাগ, কোন নতুন ডাইনামিক ট্যাগ তৈরি করা হবে না। দ্বারা
ডিফল্ট, নতুন গতিশীল ট্যাগ তৈরি করা হয় না। উল্লেখ্য যে যারা
বিকল্পগুলি শুধুমাত্র ELF সিস্টেমের জন্য উপলব্ধ।
--হ্যাশ-সাইজ=সংখ্যা
লিঙ্কারের হ্যাশ টেবিলের ডিফল্ট আকার একটি মৌলিক সংখ্যায় সেট করুন
কাছাকাছি সংখ্যা. এই মান বৃদ্ধি এর দৈর্ঘ্য কমাতে পারে
সময় এটি লিঙ্কার তার কর্ম সঞ্চালনের জন্য লাগে, খরচ
লিঙ্কারের মেমরির প্রয়োজনীয়তা বৃদ্ধি করা। একইভাবে হ্রাস করা
এই মান খরচ মেমরি প্রয়োজনীয়তা কমাতে পারে
গতি.
--হ্যাশ-স্টাইল=শৈলী
লিঙ্কারের হ্যাশ টেবিলের ধরন সেট করুন। শৈলী "sysv" হতে পারে
ক্লাসিক ELF ".hash" বিভাগের জন্য, নতুন শৈলী GNU এর জন্য "gnu"
ক্লাসিক ELF ".hash" এবং উভয়ের জন্য ".gnu.hash" বিভাগ বা "উভয়"
নতুন শৈলী GNU ".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 ডিবাগ বিভাগ সংকুচিত করুন
ELF ABI থেকে SHF_COMPRESSED সহ। ডিফল্ট আচরণ পরিবর্তিত হয়
জড়িত লক্ষ্য এবং ব্যবহৃত কনফিগার বিকল্পের উপর নির্ভর করে
টুলচেইন তৈরি করতে। ডিফল্ট পরীক্ষা দ্বারা নির্ধারণ করা যেতে পারে
লিঙ্কারের থেকে আউটপুট --help বিকল্প।
--কমাও-মেমরি-ওভারহেডস
এই বিকল্পটি ld রানটাইমে মেমরির প্রয়োজনীয়তা হ্রাস করে
সংযোগ গতির ব্যয়। পুরাতন নির্বাচন করার জন্য এটি চালু করা হয়েছিল
লিঙ্ক ম্যাপ ফাইল তৈরির জন্য O(n^2) অ্যালগরিদম, নতুনের পরিবর্তে
O(n) অ্যালগরিদম যা প্রতীক সঞ্চয়ের জন্য প্রায় 40% বেশি মেমরি ব্যবহার করে।
সুইচের আরেকটি প্রভাব হল ডিফল্ট হ্যাশ টেবিলের আকার সেট করা
1021 পর্যন্ত, যা আবার মেমরিকে দীর্ঘ করার খরচে সংরক্ষণ করে
লিঙ্কারের রান টাইম। তবে এটি করা হয় না যদি --হ্যাশ-আকার
সুইচ ব্যবহার করা হয়েছে।
সার্জারির --কমাও-মেমরি-ওভারহেডস সুইচ সক্রিয় করতে ব্যবহার করা যেতে পারে
লিঙ্কারের ভবিষ্যতের সংস্করণে অন্যান্য ট্রেডঅফ।
--বিল্ড-আইডি
--বিল্ড-আইডি=শৈলী
একটি ".note.gnu.build-id" ELF নোট বিভাগ তৈরি করার অনুরোধ করুন বা৷
একটি ".buildid" COFF বিভাগ। নোটের বিষয়বস্তু অনন্য
বিট এই লিঙ্ক করা ফাইল সনাক্ত করে. শৈলী 128 ব্যবহার করতে "uuid" হতে পারে
র্যান্ডম বিট, আদর্শে একটি 1-বিট SHA160 হ্যাশ ব্যবহার করতে "sha1"
আউটপুট বিষয়বস্তুর অংশ, "md5" একটি 128-বিট MD5 হ্যাশ ব্যবহার করতে
আউটপুট বিষয়বস্তুর আদর্শিক অংশ, বা "0xহেক্সস্ট্রিং" ব্যবহার করার জন্য
হেক্সাডেসিমেলের জোড় সংখ্যা হিসাবে নির্দিষ্ট করা একটি নির্বাচিত বিট স্ট্রিং
সংখ্যাগুলি ("-" এবং ":" অক্ষরগুলিকে অঙ্ক জোড়ার মধ্যে উপেক্ষা করা হয়)।
If শৈলী বাদ দেওয়া হয়, "sha1" ব্যবহার করা হয়।
"md5" এবং "sha1" শৈলী একটি শনাক্তকারী তৈরি করে যা সবসময় থাকে
একটি অভিন্ন আউটপুট ফাইলে একই, কিন্তু সবার মধ্যে অনন্য হবে
অ-পরিচিত আউটপুট ফাইল। এটি একটি হিসাবে তুলনা করার উদ্দেশ্যে করা হয় না
ফাইলের বিষয়বস্তুর জন্য checksum. একটি লিঙ্ক করা ফাইল পরিবর্তন করা হতে পারে
পরে অন্যান্য টুল দ্বারা, কিন্তু বিল্ড আইডি বিট স্ট্রিং সনাক্ত করে
মূল লিঙ্ক করা ফাইল পরিবর্তন হয় না.
জন্য "কোনটিই" পাস করা হচ্ছে না শৈলী যেকোনো "--build-id" থেকে সেটিং নিষ্ক্রিয় করে
কমান্ড লাইনের আগে বিকল্পগুলি।
i386 PE লিঙ্কার সমর্থন করে - শেয়ার করা হয়েছে বিকল্প, যা আউটপুট ঘটায়
একটি স্বাভাবিকের পরিবর্তে একটি গতিশীলভাবে লিঙ্কযুক্ত লাইব্রেরি (DLL) হতে হবে
নির্বাহযোগ্য আপনি যখন এটি ব্যবহার করেন তখন আপনার আউটপুটটির নাম "*.dll" হওয়া উচিত
বিকল্প উপরন্তু, লিঙ্কার সম্পূর্ণরূপে স্ট্যান্ডার্ড "*.def" সমর্থন করে
ফাইল, যা একটি বস্তুর মতো লিঙ্কার কমান্ড লাইনে নির্দিষ্ট করা যেতে পারে
ফাইল (আসলে, এটি আর্কাইভের আগে থাকা উচিত এটি থেকে, থেকে প্রতীক রপ্তানি করে
নিশ্চিত করুন যে তারা একটি সাধারণ অবজেক্ট ফাইলের মতো লিঙ্কযুক্ত হয়েছে)।
সমস্ত লক্ষ্যের জন্য সাধারণ বিকল্পগুলি ছাড়াও, i386 PE লিঙ্কার
i386-এর জন্য নির্দিষ্ট অতিরিক্ত কমান্ড লাইন বিকল্পগুলিকে সমর্থন করে
পিই লক্ষ্য। মান গ্রহণকারী বিকল্পগুলি তাদের মান থেকে আলাদা করা যেতে পারে
হয় একটি স্থান বা একটি সমান চিহ্ন দ্বারা।
--add-stdcall-alias
দেওয়া হলে, stdcall প্রত্যয় সহ চিহ্ন (@nn) হিসাবে রপ্তানি করা হবে-
is এবং এছাড়াও প্রত্যয় ছিনতাই সহ। [এই বিকল্পটি নির্দিষ্ট
লিঙ্কারের i386 PE টার্গেটেড পোর্ট]
--বেস-ফাইল ফাইল
ব্যবহার ফাইল বেস অ্যাড্রেস সংরক্ষণ করার জন্য একটি ফাইলের নাম হিসাবে
এর সাথে DLL তৈরির জন্য প্রয়োজনীয় সমস্ত স্থানান্তর dlltool.
[এটি একটি i386 PE নির্দিষ্ট বিকল্প]
--dll
একটি নিয়মিত এক্সিকিউটেবলের পরিবর্তে একটি DLL তৈরি করুন। আপনিও ব্যবহার করতে পারেন
- শেয়ার করা হয়েছে অথবা একটি প্রদত্ত ".def" ফাইলে একটি "লাইব্রেরি" উল্লেখ করুন। [এই
বিকল্পটি লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--সক্ষম-দীর্ঘ-বিভাগ-নাম
--অক্ষম-দীর্ঘ-বিভাগ-নাম
COFF অবজেক্ট ফরম্যাটের PE ভেরিয়েন্টগুলি একটি এক্সটেনশন যোগ করে
আটটি অক্ষরের চেয়ে দীর্ঘ বিভাগের নাম ব্যবহারের অনুমতি দেয়,
COFF এর জন্য স্বাভাবিক সীমা। ডিফল্টরূপে, এই নামগুলি শুধুমাত্র অনুমোদিত
অবজেক্ট ফাইল, যেহেতু সম্পূর্ণ-লিঙ্কযুক্ত এক্সিকিউটেবল ইমেজগুলি বহন করে না
দীর্ঘ নাম সমর্থন করার জন্য COFF স্ট্রিং টেবিল প্রয়োজন। একটি GNU হিসাবে
এক্সটেনশন, এক্সিকিউটেবল ইমেজে তাদের ব্যবহারের অনুমতি দেওয়া সম্ভব
সেইসাথে, অথবা (সম্ভবত অর্থহীনভাবে!) অবজেক্টে এটিকে অনুমোদন না করা
ফাইল, এই দুটি বিকল্প ব্যবহার করে। এক্সিকিউটেবল ইমেজ তৈরি করা হয়েছে
এই দীর্ঘ বিভাগের নাম সামান্য অ-মানক, বহন
যেমন তারা একটি স্ট্রিং টেবিল করে, এবং যখন বিভ্রান্তিকর আউটপুট তৈরি করতে পারে
নন-GNU PE-সচেতন সরঞ্জামগুলির সাথে পরীক্ষা করা হয়েছে, যেমন ফাইল ভিউয়ার এবং
ডাম্পার যাইহোক, GDB PE দীর্ঘ বিভাগের নাম ব্যবহারের উপর নির্ভর করে
একটি এক্সিকিউটেবল ইমেজে বামন-2 ডিবাগ তথ্য বিভাগগুলি খুঁজে পেতে
রানটাইমে, এবং তাই যদি কমান্ডে কোন বিকল্প নির্দিষ্ট করা না থাকে-
লাইন, ld ডিফল্ট ওভাররাইড করে দীর্ঘ বিভাগের নাম সক্রিয় করবে
প্রযুক্তিগতভাবে সঠিক আচরণ, যখন এটি ডিবাগের উপস্থিতি খুঁজে পায়
একটি এক্সিকিউটেবল ইমেজ লিঙ্ক করার সময় তথ্য এবং স্ট্রিপিং না
প্রতীক [এই বিকল্পটি সমস্ত PE টার্গেটেড পোর্টের জন্য বৈধ
লিঙ্কার]
--enable-stdcall-fixup
--stdcall-fixup নিষ্ক্রিয় করুন
যদি লিঙ্কটি এমন একটি চিহ্ন খুঁজে পায় যা এটি সমাধান করতে পারে না, তবে এটি চেষ্টা করবে
অন্য সংজ্ঞায়িত চিহ্নের জন্য অনুসন্ধান করে "ফজি লিঙ্কিং" করতে
শুধুমাত্র প্রতীক নামের বিন্যাসে পার্থক্য (cdecl বনাম stdcall)
এবং ম্যাচের সাথে লিঙ্ক করে সেই প্রতীকটি সমাধান করবে। উদাহরণ স্বরূপ,
অনির্ধারিত চিহ্ন "_foo" ফাংশনের সাথে সংযুক্ত হতে পারে
"_foo@12", বা অনির্ধারিত চিহ্ন "_bar@16" এর সাথে লিঙ্ক করা হতে পারে
ফাংশন "_বার"। যখন লিঙ্কার এটি করে, এটি একটি সতর্কতা প্রিন্ট করে,
যেহেতু এটি সাধারণত লিঙ্ক করতে ব্যর্থ হওয়া উচিত, তবে কখনও কখনও আমদানি করে
তৃতীয় পক্ষের dlls থেকে উত্পন্ন লাইব্রেরিগুলির জন্য এই বৈশিষ্ট্যটির প্রয়োজন হতে পারে
ব্যবহারযোগ্য হতে যদি আপনি উল্লেখ করেন --enable-stdcall-fixup, এই বৈশিষ্ট্য
সম্পূর্ণরূপে সক্রিয় এবং সতর্কতা মুদ্রিত হয় না. যদি আপনি উল্লেখ করেন
--stdcall-fixup নিষ্ক্রিয় করুন, এই বৈশিষ্ট্যটি নিষ্ক্রিয় করা হয়েছে এবং এইরকম৷
অমিলগুলিকে ত্রুটি হিসাবে বিবেচনা করা হয়। [এই বিকল্পটি নির্দিষ্ট
লিঙ্কারের i386 PE টার্গেটেড পোর্টে]
--লিডিং-আন্ডারস্কোর
--নো-লিডিং-আন্ডারস্কোর
বেশিরভাগ লক্ষ্যের জন্য ডিফল্ট প্রতীক-প্রিফিক্স একটি আন্ডারস্কোর এবং হয়
লক্ষ্যের বর্ণনায় সংজ্ঞায়িত করা হয়েছে। এই বিকল্প দ্বারা এটা সম্ভব
ডিফল্ট আন্ডারস্কোর প্রতীক-প্রিফিক্স নিষ্ক্রিয়/সক্ষম করুন।
--রপ্তানি-সমস্ত-প্রতীক
যদি দেওয়া হয়, একটি DLL তৈরি করতে ব্যবহৃত বস্তুর সমস্ত বিশ্বব্যাপী চিহ্ন
DLL দ্বারা রপ্তানি করা হবে। উল্লেখ্য যে এটি ডিফল্ট যদি
অন্যথায় কোন রপ্তানি চিহ্ন থাকবে না। যখন প্রতীক হয়
স্পষ্টভাবে DEF ফাইলের মাধ্যমে রপ্তানি করা হয় বা এর মাধ্যমে স্পষ্টভাবে রপ্তানি করা হয়
ফাংশন বৈশিষ্ট্য, ডিফল্ট অন্য কিছু রপ্তানি না হয়
যদি না এই বিকল্পটি দেওয়া হয়। মনে রাখবেন যে প্রতীক "DllMain@12",
"DllEntryPoint@0", "DllMainCRTSstartup@12", এবং "অশুদ্ধ_ptr" হবে
স্বয়ংক্রিয়ভাবে রপ্তানি করা যাবে না। এছাড়াও, অন্যান্য থেকে আমদানি করা প্রতীক
DLL পুনরায় রপ্তানি করা হবে না, বা DLL এর নির্দিষ্ট চিহ্নগুলিও হবে না৷
অভ্যন্তরীণ লেআউট যেমন "_হেড_" দিয়ে শুরু বা শেষ
"_নাম" সহ। উপরন্তু, "libgcc", "libstd++" থেকে কোন চিহ্ন নেই,
"libmingw32", বা "crtX.o" রপ্তানি করা হবে৷ প্রতীক যাদের নাম
সাহায্য করার জন্য "__rtti_" বা "__builtin_" রপ্তানি করা হবে না
C++ DLL সহ। অবশেষে, সাইগউইনের একটি বিস্তৃত তালিকা রয়েছে-
ব্যক্তিগত প্রতীক যা রপ্তানি করা হয় না (স্পষ্টতই, এটি প্রযোজ্য
সাইগউইন লক্ষ্যগুলির জন্য DLL তৈরি করার সময়)। এই cygwin-বাদ হল:
"_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 টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--বাদ-চিহ্ন প্রতীক,প্রতীক...
চিহ্নগুলির একটি তালিকা নির্দিষ্ট করে যা স্বয়ংক্রিয়ভাবে হওয়া উচিত নয়
রপ্তানি প্রতীকের নামগুলি কমা বা কোলন দ্বারা সীমাবদ্ধ করা যেতে পারে।
[এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--বাদ-সমস্ত-চিহ্ন
নির্দিষ্ট করে কোন চিহ্ন স্বয়ংক্রিয়ভাবে রপ্তানি করা উচিত নয়। [এই
বিকল্পটি লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--ফাইল-সারিবদ্ধকরণ
ফাইল সারিবদ্ধকরণ নির্দিষ্ট করুন। ফাইলের বিভাগগুলি সর্বদা শুরু হবে
ফাইল অফসেটে যা এই সংখ্যার গুণিতক। এই ডিফল্ট
512 থেকে। [এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--গাদা সংচিতি
--গাদা সংচিতি,সমর্পণ করা
রিজার্ভ করার জন্য মেমরির বাইটের সংখ্যা নির্দিষ্ট করুন (এবং ঐচ্ছিকভাবে
কমিট) এই প্রোগ্রামের জন্য গাদা হিসাবে ব্যবহার করা হবে। ডিফল্ট 1MB
সংরক্ষিত, 4K প্রতিশ্রুতিবদ্ধ। [এই বিকল্পটি i386 PE-এর জন্য নির্দিষ্ট
লিঙ্কার টার্গেটেড পোর্ট]
--ইমেজ-বেস মূল্য
ব্যবহার মূল্য আপনার প্রোগ্রাম বা dll এর ভিত্তি ঠিকানা হিসাবে। এই হল
সর্বনিম্ন মেমরি অবস্থান যা ব্যবহার করা হবে যখন আপনার প্রোগ্রাম বা dll
লোড করা হয় স্থানান্তর এবং কর্মক্ষমতা উন্নত করার প্রয়োজন কমাতে
আপনার dll-এর প্রত্যেকটির একটি অনন্য বেস ঠিকানা থাকা উচিত এবং না
অন্য কোনো dll ওভারল্যাপ করুন। এক্সিকিউটেবলের জন্য ডিফল্ট হল 0x400000,
এবং dll এর জন্য 0x10000000। [এই বিকল্পটি i386 PE-এর জন্য নির্দিষ্ট
লিঙ্কার টার্গেটেড পোর্ট]
-- হত্যা করা
দেওয়া হলে, stdcall প্রত্যয় (@nn) প্রতীক থেকে ছিনতাই করা হবে
রপ্তানি করার আগে। [এই বিকল্পটি i386 PE-এর জন্য নির্দিষ্ট
লিঙ্কার টার্গেটেড পোর্ট]
--বড়-ঠিকানা-সচেতন
দেওয়া হলে, এর "চরিত্রিক" ক্ষেত্রে উপযুক্ত বিট
এই এক্সিকিউটেবল সমর্থন করে তা নির্দেশ করার জন্য COFF হেডার সেট করা হয়েছে
ভার্চুয়াল ঠিকানা 2 গিগাবাইটের বেশি। এই ব্যবহার করা উচিত
/3GB বা /USERVA= এর সাথে সংযুক্তমূল্য মেগাবাইট সুইচ ইন
BOOT.INI-এর "[অপারেটিং সিস্টেম]" বিভাগ। অন্যথায়, এই বিট
কোন প্রভাব নেই। [এই বিকল্পটি নির্দিষ্ট PE টার্গেটেড পোর্টের জন্য
লিঙ্কার]
--অক্ষম-বড়-ঠিকানা-সচেতন
পূর্বের প্রভাবকে ফিরিয়ে দেয় --বড়-ঠিকানা-সচেতন বিকল্প।
এই যদি দরকারী --বড়-ঠিকানা-সচেতন সবসময় দ্বারা সেট করা হয়
কম্পাইলার ড্রাইভার (যেমন Cygwin gcc) এবং এক্সিকিউটেবল করে না
2 গিগাবাইটের বেশি ভার্চুয়াল ঠিকানা সমর্থন করে। [এই বিকল্প
লিঙ্কারের পিই টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--প্রধান-ইমেজ-সংস্করণ মূল্য
"ইমেজ সংস্করণ" এর প্রধান সংখ্যা সেট করে। ডিফল্ট 1.
[এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--মেজর-ওএস-সংস্করণ মূল্য
"OS সংস্করণ" এর প্রধান সংখ্যা সেট করে। ডিফল্ট থেকে 4. [এই
বিকল্পটি লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--প্রধান-সাবসিস্টেম-সংস্করণ মূল্য
"সাবসিস্টেম সংস্করণ" এর প্রধান সংখ্যা সেট করে। ডিফল্ট 4.
[এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--ছোট-ছবি-সংস্করণ মূল্য
"ইমেজ সংস্করণ" এর গৌণ সংখ্যা সেট করে। ডিফল্ট 0.
[এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--মাইনর-ওএস-সংস্করণ মূল্য
"OS সংস্করণ" এর গৌণ সংখ্যা সেট করে। ডিফল্ট 0. [এই
বিকল্পটি লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--অপ্রধান-সাবসিস্টেম-সংস্করণ মূল্য
"সাবসিস্টেম সংস্করণ" এর গৌণ সংখ্যা সেট করে। ডিফল্ট 0.
[এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--আউটপুট-ডিফ ফাইল
লিঙ্কার ফাইলটি তৈরি করবে ফাইল যেটিতে একটি DEF ফাইল থাকবে
DLL এর সাথে মিল রেখে লিঙ্কার তৈরি করছে। এই DEF ফাইল
(যাকে "*.def" বলা উচিত) একটি আমদানি তৈরি করতে ব্যবহার করা যেতে পারে
"dlltool" সহ লাইব্রেরি বা একটি রেফারেন্স হিসাবে ব্যবহার করা যেতে পারে
স্বয়ংক্রিয়ভাবে বা পরোক্ষভাবে রপ্তানি করা প্রতীক। [এই বিকল্পটি
লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--আউট-ইম্পলিব ফাইল
লিঙ্কার ফাইলটি তৈরি করবে ফাইল যা একটি আমদানি ধারণ করবে
lib DLL এর সাথে সম্পর্কিত লিঙ্কার তৈরি করছে। এই আমদানি
lib (যাকে "*.dll.a" বা "*.a" বলা উচিত লিঙ্ক করার জন্য ব্যবহার করা যেতে পারে
উত্পন্ন DLL বিরুদ্ধে ক্লায়েন্ট; এই আচরণ এটি সম্ভব করে তোলে
একটি পৃথক "dlltool" আমদানি লাইব্রেরি তৈরির ধাপ এড়িয়ে যেতে। [এই
বিকল্পটি লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--সক্ষম-অটো-ইমেজ-বেস
--সক্ষম-অটো-ইমেজ-বেস=মূল্য
স্বয়ংক্রিয়ভাবে DLL-এর জন্য ইমেজ বেস বেছে নিন, ঐচ্ছিকভাবে শুরু করুন
বেস সহ মূল্য, যদি না একটি "--ইমেজ-বেস" ব্যবহার করে নির্দিষ্ট করা হয়
যুক্তি. তৈরি করতে dllname থেকে তৈরি একটি হ্যাশ ব্যবহার করে
প্রতিটি DLL, ইন-মেমরি সংঘর্ষ এবং জন্য অনন্য ইমেজ বেস
স্থানান্তর যা প্রোগ্রাম সম্পাদনে বিলম্ব করতে পারে তা এড়ানো হয়। [এই
বিকল্পটি লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--অটো-ইমেজ-বেস অক্ষম করুন
স্বয়ংক্রিয়ভাবে একটি অনন্য ইমেজ বেস তৈরি করবেন না। যদি না থাকে
ব্যবহারকারী-নির্দিষ্ট ইমেজ বেস ("--ইমেজ-বেস") তারপর প্ল্যাটফর্ম ব্যবহার করুন
ডিফল্ট. [এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--dll-সার্চ-প্রিফিক্স স্ট্রিং
একটি আমদানি লাইব্রেরি ছাড়াই একটি dll এ গতিশীলভাবে লিঙ্ক করার সময়, অনুসন্ধান করুন৷
জন্য " .dll" অগ্রাধিকারে "lib .dll"।
এই আচরণের জন্য নির্মিত DLL-এর মধ্যে সহজ পার্থক্য করার অনুমতি দেয়
বিভিন্ন "সাবপ্ল্যাটফর্ম": নেটিভ, সাইগউইন, ইউউইন, পিডব্লিউ, ইত্যাদির জন্য
উদাহরণ, cygwin DLL সাধারণত "--dll-search-prefix=cyg" ব্যবহার করে।
[এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--সক্ষম-স্বয়ংক্রিয় আমদানি
ডেটার জন্য "_symbol" এর সাথে "__imp__symbol" এর অত্যাধুনিক লিঙ্কিং করুন
DLL থেকে আমদানি করে, এবং যখন প্রয়োজনীয় থাঙ্কিং চিহ্ন তৈরি করে
সেই ডেটা রপ্তানি দিয়ে আমদানি লাইব্রেরি তৈরি করা। দ্রষ্টব্য: ব্যবহার
'স্বয়ংক্রিয়-আমদানি' এক্সটেনশন এর পাঠ্য বিভাগের কারণ হবে
ইমেজ ফাইল লেখার যোগ্য করতে হবে। এটি পিই-এর সাথে সঙ্গতিপূর্ণ নয়
মাইক্রোসফ্ট দ্বারা প্রকাশিত COFF ফর্ম্যাট স্পেসিফিকেশন।
দ্রষ্টব্য - 'স্বয়ংক্রিয়-আমদানি' এক্সটেনশনের ব্যবহার শুধুমাত্র পড়ার কারণ হবে৷
ডেটা যা সাধারণত .rdata বিভাগে স্থাপন করা হবে
পরিবর্তে .data বিভাগে স্থাপন করা হয়েছে। এটি কাজ করার জন্য
এখানে বর্ণিত consts সঙ্গে একটি সমস্যা কাছাকাছি:
http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html
'স্বয়ংক্রিয়-আমদানি' ব্যবহার করা সাধারণত 'শুধু কাজ করবে' -- কিন্তু কখনও কখনও আপনি
এই বার্তা দেখতে পারেন:
"ভেরিয়েবল ' ' স্বয়ংক্রিয়ভাবে আমদানি করা যাবে না। অনুগ্রহ করে পড়ুন
বিস্তারিত জানার জন্য ld-এর "--সক্ষম-অটো-আমদানি" এর জন্য ডকুমেন্টেশন৷
এই বার্তাটি ঘটে যখন কিছু (উপ) অভিব্যক্তি একটি ঠিকানা অ্যাক্সেস করে
শেষ পর্যন্ত দুটি ধ্রুবকের যোগফল দ্বারা প্রদত্ত (Win32 আমদানি টেবিল
শুধুমাত্র একটি অনুমতি দিন)। উদাহরণ যেখানে এটি ঘটতে পারে অ্যাক্সেস অন্তর্ভুক্ত
একটি DLL থেকে আমদানিকৃত struct ভেরিয়েবলের সদস্য ক্ষেত্রগুলিতেও
a থেকে আমদানি করা অ্যারে ভেরিয়েবলে একটি ধ্রুবক সূচক ব্যবহার করে
ডিএলএল। যেকোনো মাল্টিওয়ার্ড ভেরিয়েবল (অ্যারে, স্ট্রাকস, লং লং, ইত্যাদি) হতে পারে
এই ত্রুটি অবস্থা ট্রিগার. যাইহোক, নির্বিশেষে সঠিক
আপত্তিকর এক্সপোর্ট করা ভেরিয়েবলের ডেটা টাইপ, ld সবসময় সনাক্ত করবে
এটা, সতর্কতা জারি, এবং প্রস্থান.
এই অসুবিধা মোকাবেলা করার বিভিন্ন উপায় আছে, নির্বিশেষে
এক্সপোর্ট করা ভেরিয়েবলের ডাটা টাইপ:
একটি উপায় হল --enable-runtime-pseudo-reloc সুইচ ব্যবহার করা। এই পাতার
রানটাইমের জন্য আপনার ক্লায়েন্ট কোডে রেফারেন্স সামঞ্জস্য করার কাজ
পরিবেশ, তাই এই পদ্ধতি শুধুমাত্র রানটাইম পরিবেশে কাজ করে
এই বৈশিষ্ট্য সমর্থন করে।
দ্বিতীয় সমাধান হল 'ধ্রুবক'-এর একটিকে a হতে বাধ্য করা
পরিবর্তনশীল -- অর্থাৎ কম্পাইলের সময় অজানা এবং অ-অপ্টিমাইজ করা যায়।
অ্যারের জন্য, দুটি সম্ভাবনা রয়েছে: ক) সূচক তৈরি করুন (দ্য
অ্যারের ঠিকানা) একটি পরিবর্তনশীল, বা খ) 'ধ্রুবক' সূচক তৈরি করুন a
পরিবর্তনশীল এইভাবে:
extern type extern_array[];
extern_array[1] -->
{ উদ্বায়ী প্রকার *t=extern_array; টি[1]}
or
extern type extern_array[];
extern_array[1] -->
{ উদ্বায়ী int t=1; extern_array[t] }
স্ট্রাকস (এবং বেশিরভাগ অন্যান্য মাল্টিওয়ার্ড ডেটা প্রকার) জন্য একমাত্র বিকল্প
স্ট্রাকট নিজেই তৈরি করতে হয় (বা লম্বা লম্বা, বা ...)
পরিবর্তনশীল:
extern struct s extern_struct;
extern_struct.field -->
{ উদ্বায়ী কাঠামো s *t=&extern_struct; t->ক্ষেত্র }
or
extern long long extern_ll;
extern_ll -->
{ উদ্বায়ী দীর্ঘ দীর্ঘ * local_ll=&extern_ll; *স্থানীয়_ল }
এই অসুবিধা মোকাবেলার একটি তৃতীয় পদ্ধতি পরিত্যাগ করা হয়
আপত্তিকর চিহ্নের জন্য 'অটো-ইমপোর্ট' এবং এটি দিয়ে চিহ্নিত করুন
"__declspec(dllimport)"। যাইহোক, অনুশীলনে যে ব্যবহার করা প্রয়োজন
আপনি একটি DLL নির্মাণ করছেন কিনা তা নির্দেশ করতে কম্পাইল-টাইম #সংজ্ঞায়িত করে,
বিল্ডিং ক্লায়েন্ট কোড যা DLL এর সাথে লিঙ্ক করবে, বা নিছক
একটি স্ট্যাটিক লাইব্রেরি নির্মাণ/লিঙ্কিং। পছন্দ করার মধ্যে
সমাধানের বিভিন্ন পদ্ধতির মধ্যে 'সরাসরি ঠিকানা'
ধ্রুব অফসেট' সমস্যা, আপনি আদর্শ বাস্তব বিশ্বের বিবেচনা করা উচিত
ব্যবহার:
মূল:
--foo.h
extern int arr[];
--foo.c
# "foo.h" অন্তর্ভুক্ত করুন
void main(int argc, char **argv){
printf("%d\n", arr[1]);
}
1 সমাধান:
--foo.h
extern int arr[];
--foo.c
# "foo.h" অন্তর্ভুক্ত করুন
void main(int argc, char **argv){
/* এই সমাধানটি win32 এবং cygwin এর জন্য; "অপ্টিমাইজ" করবেন না */
উদ্বায়ী int *parr = arr;
printf("%d\n", parr[1]);
}
2 সমাধান:
--foo.h
/* দ্রষ্টব্য: স্বয়ংক্রিয়-রপ্তানি ধরে নেওয়া হয়েছে (কোন __declspec(dllexport)) */
#if (সংজ্ঞায়িত(_WIN32) || সংজ্ঞায়িত(__CYGWIN__)) && \
!(সংজ্ঞায়িত(FOO_BUILD_DLL) || সংজ্ঞায়িত(FOO_STATIC))
#FOO_IMPORT __declspec(dllimport) সংজ্ঞায়িত করুন
# আরও
#FOO_IMPORT সংজ্ঞায়িত করুন
#endif
বহিরাগত 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 টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কারের]
--অটো-ইমপোর্ট অক্ষম করুন
"_চিহ্ন" এর সাথে পরিশীলিত লিঙ্ক করার চেষ্টা করবেন না
DLLs থেকে DATA আমদানির জন্য "__imp__symbol"। [এই বিকল্পটি
লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
--সক্ষম-রানটাইম-সিউডো-রিলোক
যদি আপনার কোডে --enable-auto-import-এ বর্ণিত এক্সপ্রেশন থাকে
বিভাগ, অর্থাৎ, নন-জিরো অফসেট সহ DLL থেকে ডেটা আমদানি, এটি
সুইচ 'রানটাইম সিউডো রিলোকেশন' এর একটি ভেক্টর তৈরি করবে যা
এই ধরনের রেফারেন্স সামঞ্জস্য করতে রানটাইম পরিবেশ দ্বারা ব্যবহার করা যেতে পারে
আপনার ক্লায়েন্ট কোডে ডেটা। [এই বিকল্পটি i386 PE-এর জন্য নির্দিষ্ট
লিঙ্কার টার্গেটেড পোর্ট]
--অক্ষম-রানটাইম-ছদ্ম-রিলোক
শূন্য অফসেট ডেটা আমদানির জন্য ছদ্ম স্থানান্তর তৈরি করবেন না
DLLs থেকে। [এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কারের]
--সক্ষম-অতিরিক্ত-পিই-ডিবাগ
স্বয়ংক্রিয়-আমদানি প্রতীক থাঙ্কিং সম্পর্কিত অতিরিক্ত ডিবাগ তথ্য দেখান।
[এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--বিভাগ-সারিবদ্ধকরণ
বিভাগ প্রান্তিককরণ সেট করে। মেমরিতে বিভাগ সবসময় শুরু হবে
ঠিকানায় যা এই সংখ্যার একাধিক। ডিফল্ট থেকে
0x1000। [এই বিকল্পটি i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট
লিঙ্কার]
--স্ট্যাক সংচিতি
--স্ট্যাক সংচিতি,সমর্পণ করা
রিজার্ভ করার জন্য মেমরির বাইটের সংখ্যা নির্দিষ্ট করুন (এবং ঐচ্ছিকভাবে
কমিট) এই প্রোগ্রামের জন্য স্ট্যাক হিসাবে ব্যবহার করা হবে। ডিফল্ট 2MB
সংরক্ষিত, 4K প্রতিশ্রুতিবদ্ধ। [এই বিকল্পটি i386 PE-এর জন্য নির্দিষ্ট
লিঙ্কার টার্গেটেড পোর্ট]
--সাবসিস্টেম যে
--সাবসিস্টেম যে:মুখ্য
--সাবসিস্টেম যে:মুখ্য.গৌণ
সাবসিস্টেম নির্দিষ্ট করে যার অধীনে আপনার প্রোগ্রাম চালানো হবে। দ্য
জন্য আইনি মান যে হল "নেটিভ", "উইন্ডোজ", "কনসোল", "পোসিক্স",
এবং "এক্সবক্স"। আপনি ঐচ্ছিকভাবে সাবসিস্টেম সংস্করণও সেট করতে পারেন।
সংখ্যাসূচক মান এছাড়াও জন্য গৃহীত হয় যে. [এই বিকল্পটি
লিঙ্কারের i386 PE টার্গেটেড পোর্টের জন্য নির্দিষ্ট]
নিম্নলিখিত বিকল্পগুলি "Dll বৈশিষ্ট্য" ক্ষেত্রে পতাকা সেট করে
PE ফাইলের শিরোনাম: [এই বিকল্পগুলি PE টার্গেটের জন্য নির্দিষ্ট
লিঙ্কারের পোর্ট]
--হাই-এনট্রপি-ভিএ
ইমেজ 64-বিট অ্যাড্রেস স্পেস লেআউট র্যান্ডমাইজেশনের সাথে সামঞ্জস্যপূর্ণ
(এএসএলআর)।
--ডাইনামিকবেস
ইমেজ বেস ঠিকানা ঠিকানা স্থান বিন্যাস ব্যবহার করে স্থানান্তরিত হতে পারে
এলোমেলোকরণ (এএসএলআর)। এই বৈশিষ্ট্যটি এমএস উইন্ডোজের সাথে চালু করা হয়েছিল
i386 PE লক্ষ্যগুলির জন্য Vista।
--forceinteg
কোড অখণ্ডতা চেক প্রয়োগ করা হয়.
--nxcompat
চিত্রটি ডেটা এক্সিকিউশন প্রতিরোধের সাথে সামঞ্জস্যপূর্ণ। এই
i2 PE লক্ষ্যগুলির জন্য MS Windows XP SP386 এর সাথে বৈশিষ্ট্যটি চালু করা হয়েছিল।
--কোন-বিচ্ছিন্নতা
যদিও ছবি বিচ্ছিন্নতা বোঝে, ছবিকে বিচ্ছিন্ন করবেন না।
--না-সেহ
ছবিটি SEH ব্যবহার করে না। এর থেকে কোনো এসই হ্যান্ডলারকে ডাকা যাবে না
চিত্র।
--না-আবদ্ধ
এই ছবিটি আবদ্ধ করবেন না।
--wdmdriver
ড্রাইভার এমএস উইন্ডোজ ড্রাইভার মডেল ব্যবহার করে।
--তসওয়ার
ছবিটি টার্মিনাল সার্ভার সচেতন।
-- সন্নিবেশ-টাইমস্ট্যাম্প
--নো-ইনসার্ট-টাইমস্ট্যাম্প
ছবিতে একটি বাস্তব টাইমস্ট্যাম্প সন্নিবেশ করান৷ এটি ডিফল্ট
আচরণ যেহেতু এটি লিগ্যাসি কোডের সাথে মেলে এবং এর অর্থ হল ছবিটি
অন্যান্য, মালিকানাধীন সরঞ্জামগুলির সাথে কাজ করবে। এই নিয়ে সমস্যা
ডিফল্ট হল যে এটির ফলে সামান্য ভিন্ন ইমেজ হবে
উত্পাদিত প্রতিটি সময় একই উত্স লিঙ্ক করা হয়. পছন্দ
--নো-ইনসার্ট-টাইমস্ট্যাম্প এর জন্য একটি শূন্য মান সন্নিবেশ করতে ব্যবহার করা যেতে পারে
টাইমস্ট্যাম্প, এটি নিশ্চিত করে যে বাইনারিগুলি অভিন্ন থেকে উৎপন্ন হয়
উৎসগুলো একইভাবে তুলনা করবে।
C6X uClinux টার্গেট সমর্থন করার জন্য DSBT নামে একটি বাইনারি বিন্যাস ব্যবহার করে
ভাগ করা লাইব্রেরি। সিস্টেমের প্রতিটি ভাগ করা লাইব্রেরিতে একটি থাকা প্রয়োজন
অনন্য সূচক; সমস্ত এক্সিকিউটেবল 0 এর একটি সূচক ব্যবহার করে।
--dsbt-আকার আয়তন
এই বিকল্পটি বর্তমানের DSBT-এ প্রবেশের সংখ্যা নির্ধারণ করে
এক্সিকিউটেবল বা শেয়ার করা লাইব্রেরিতে আয়তন. ডিফল্ট একটি তৈরি করা হয়
64টি এন্ট্রি সহ টেবিল।
--dsbt-সূচক সূচক
এই বিকল্পটি বর্তমান এক্সিকিউটেবল বা শেয়ার করা ডিএসবিটি সূচক সেট করে
লাইব্রেরি থেকে সূচক. ডিফল্ট হল 0, যার জন্য উপযুক্ত
এক্সিকিউটেবল তৈরি করা। যদি একটি শেয়ার্ড লাইব্রেরি তৈরি হয়
0 এর DSBT সূচক, "R_C6000_DSBT_INDEX" রিলোকগুলি কপি করা হয়েছে
আউটপুট ফাইল।
সার্জারির --নো-মার্জ-এক্সিডএক্স-এন্ট্রি সুইচ এর একত্রীকরণ নিষ্ক্রিয় করে
ফ্রেমে সংলগ্ন এক্সিডএক্স এন্ট্রিগুলি আনওয়াইন্ড ইনফো।
68HC11 এবং 68HC12 লিঙ্কারগুলি নিয়ন্ত্রণ করতে নির্দিষ্ট বিকল্পগুলিকে সমর্থন করে
মেমরি ব্যাংক সুইচিং ম্যাপিং এবং ট্রামপোলিন কোড জেনারেশন।
--নো-ট্রাম্পোলিন
এই বিকল্পটি ট্রামপোলিনের প্রজন্মকে অক্ষম করে। ডিফল্টরূপে a
ট্রামপোলিন প্রতিটি দূর ফাংশনের জন্য উত্পন্ন হয় যা ব্যবহার করে বলা হয়
একটি "jsr" নির্দেশ (এটি ঘটবে যখন একটি দূর ফাংশনের নির্দেশক
নেওয়া হয়).
--ব্যাংক-জানালা নাম
এই বিকল্পটি লিঙ্কারকে মেমরি অঞ্চলের নাম নির্দেশ করে
মধ্যে স্মৃতি স্পেসিফিকেশন যা মেমরি ব্যাঙ্ক উইন্ডো বর্ণনা করে।
এই ধরনের অঞ্চলের সংজ্ঞা তারপর লিঙ্কার দ্বারা গণনা করার জন্য ব্যবহার করা হয়
মেমরি উইন্ডোর মধ্যে পেজিং এবং ঠিকানা।
নিম্নলিখিত বিকল্পগুলি GOT-এর পরিচালনা নিয়ন্ত্রণ করতে সমর্থিত
68K লক্ষ্যগুলির জন্য লিঙ্ক করার সময় প্রজন্ম।
-- পেয়েছে=আদর্শ
এই বিকল্পটি লিঙ্কারকে বলে যে কোন GOT প্রজন্মের স্কিমটি ব্যবহার করতে হবে।
আদর্শ এক হতে হবে একক, নেতিবাচক, multigot or লক্ষ্য। জন্য
আরও তথ্যের জন্য তথ্য এন্ট্রি পড়ুন ld.
নিম্নলিখিত বিকল্পগুলি মাইক্রোএমআইপিএস নির্দেশ নিয়ন্ত্রণ করতে সমর্থিত
MIPS লক্ষ্যগুলির জন্য লিঙ্ক করার সময় প্রজন্ম।
--insn32
--no-insn32
এই বিকল্পগুলি ব্যবহার করা মাইক্রোএমআইপিএস নির্দেশাবলীর পছন্দ নিয়ন্ত্রণ করে
লিঙ্কার দ্বারা উত্পন্ন কোড, যেমন PLT বা অলস
বাঁধাই stubs, বা শিথিল মধ্যে. যদি --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" লিঙ্কার মোড়ক প্রোগ্রাম দ্বারা অনুরূপ ফ্যাশন. ডিফল্ট হতে পারে
দ্বারা ওভাররাইড করা -- demangle এবং --নো-দেমঙ্গল অপশন।
onworks.net পরিষেবা ব্যবহার করে i686-linux-gnu-ld অনলাইন ব্যবহার করুন