லினக்ஸ் / யுனிக்ஸ் கட்டளை: ஐடி

பெயர்

ld - LD பயன்படுத்தி , குனு இணைப்பு

சுருக்கம்

ld [ options ] objfile ...

விளக்கம்

ld பல பொருள் மற்றும் காப்பக கோப்புகளை இணைக்கிறது, அவற்றின் தரவு மற்றும் குறியீட்டு குறிப்புகளை இணைக்கின்றது. வழக்கமாக ஒரு திட்டத்தை தொகுக்க கடைசி வழி ld ரன் ஆகும்.

AT & T இன் இணைப்பு ஆசிரியர் கட்டளை மொழி தொடரியல் ஒரு superset இல் எழுதப்பட்ட இணைப்புதாரர் மொழி கோப்புகளை ld ஏற்றுக்கொள்கிறது, இணைக்கும் செயல்முறை மீது வெளிப்படையான மற்றும் மொத்த கட்டுப்பாட்டை வழங்க.

கட்டளை மொழியை இந்த மனிதன் விவரிக்கவில்லை; "தகவல்" அல்லது கையேடு ld இல் உள்ள ld இடுகை காணவும்: GNU கன்டர், கட்டளை மொழியில் முழு விவரங்களையும், மற்றும் ANU இணைப்பின் மற்ற அம்சங்களிலும் காண்க.

Ld இன் இந்த பதிப்பு பொது நோக்கத்திற்காக BFD நூலகங்களை ஆப்ஜெக்ட் கோப்புகளில் செயல்படுத்துகிறது. இது ld பல்வேறு வடிவங்களில் படிக்கவும், இணைக்கவும், மற்றும் பொருளை எழுதவும் அனுமதிக்கிறது --- எடுத்துக்காட்டாக, COFF அல்லது "a.out". பல்வேறு வடிவங்கள் ஒன்றோடொன்று இணைக்கப்படலாம், அவை ஏதாவது கிடைக்கக்கூடிய வகையான கோப்பை உருவாக்கலாம்.

அதன் நெகிழ்வுத்தன்மையிலிருந்து தவிர, குனு இணைப்பானது கண்டறியும் தகவலை வழங்குவதில் மற்ற இணைப்பாளர்களைக் காட்டிலும் மிகவும் உதவியாக இருக்கும். ஒரு பிழையை எதிர்கொள்ளும்போது பல இணைப்பவர்கள் உடனடியாக மரணதண்டனை நிறைவேற்றுவர்; முடிந்தவரை, ld தொடர்ந்து செயல்படுத்துகிறது, மற்ற பிழைகள் (அல்லது, சில சந்தர்ப்பங்களில், வெளியீடு கோப்பினைப் பிழை என்றாலும் கூட) அடையாளம் காண அனுமதிக்கிறது.

குனு இணைப்பு எல்டி என்பது ஒரு பரந்த அளவிலான சூழ்நிலைகளை மறைப்பதற்கு மற்றும் பிற இணைப்பிகளுடன் முடிந்தவரை இணக்கமாக இருக்க வேண்டும். இதன் விளைவாக, அதன் நடத்தையை கட்டுப்படுத்த பல விருப்பங்களைக் கொண்டுள்ளீர்கள்.

விருப்பங்கள்

இணைப்பான் கட்டளை வரி விருப்பங்களை மிகுதியாக ஆதரிக்கிறது, ஆனால் உண்மையான நடைமுறையில் சில குறிப்பிட்ட சூழலில் அவை பயன்படுத்தப்படுகின்றன. உதாரணமாக, ஒரு நிலையான, ஆதரவு யுனிக்ஸ் கணினியில் தரமான யூனிக்ஸ் பொருள் கோப்புகளை இணைக்க எல்டி அடிக்கடி பயன்படுத்தப்படுகிறது. ஒரு கணினியில், "hello.o" என்ற கோப்பை இணைக்க:

ld -o /lib/crt0.o hello.o -lc

இது "hello.o" மற்றும் "libc.a" என்ற கோப்பில் "/lib/crt0.o" மற்றும் "libc.a" என்ற கோப்பை இணைப்பதன் விளைவாக வெளியீடு எனப்படும் கோப்பை தயாரிப்பதற்காக ld ஐ குறிப்பிடுகிறது, இது தரநிலை தேடல் கோப்பகங்களிலிருந்து வரும். (கீழே -l விருப்பத்தின் விவாதத்தைக் காண்க.)

Ld க்கு கட்டளை-வரி விருப்பங்கள் சில கட்டளை வரியில் எந்த புள்ளியில் குறிப்பிடப்படலாம். இருப்பினும், -l அல்லது -t போன்ற கோப்புகளைக் குறிக்கும் விருப்பத்தேர்வுகளை, கோப்பு மற்றும் பிற கோப்பு விருப்பங்களுடன் தொடர்புடைய கட்டளை வரியில் தோன்றும் கட்டத்தில் கோப்பு வாசிக்கப்படலாம். வேறுபட்ட வாதத்துடன் அல்லாத கோப்பு விருப்பங்களை மறுபரிசீலனை செய்யாது அல்லது அந்த விருப்பத்தின் முன் நிகழ்வுகள் (கட்டளை வரியில் இடதுபுறத்தில் இன்னும் அந்தவை) புறக்கணிக்கப்படும். கீழே குறிப்பிடப்பட்டுள்ள விடயங்களில் குறிப்பிடத்தக்க வகையில் குறிப்பிடப்பட்டிருக்கும் விருப்பங்கள் ஒன்றுக்கு மேற்பட்ட முறை குறிப்பிடப்பட்டுள்ளன.

அல்லாத விருப்பத்தை வாதங்கள் ஒன்றாக இணைக்கப்பட வேண்டிய பொருள் கோப்புகள் அல்லது காப்பகங்கள் உள்ளன. கட்டளை வரி விருப்பங்களுடன் அவர்கள் பின்பற்றலாம், முன்செல்லலாம் அல்லது கலக்கலாம், தவிர ஒரு ஆப்ஜெக்ட் கோப்பு வாதம் ஒரு விருப்பத்திற்கும் அதன் வாதத்திற்கும் இடையே வைக்கப்படாது.

வழக்கமாக இணைப்பவர் குறைந்தபட்சம் ஒரு பொருளைக் கோப்பால் அழைக்கப்படுகிறார், ஆனால் -l , -R , மற்றும் ஸ்கிரிப்ட் கட்டளை மொழி ஆகியவற்றைப் பயன்படுத்தி மற்ற வகையான பைனரி உள்ளீட்டுக் கோப்புகளை நீங்கள் குறிப்பிடலாம். அனைத்து பைனரி உள்ளீடு கோப்புகள் எதுவும் குறிப்பிடப்படவில்லை என்றால், இணைப்பு எந்த வெளியீட்டையும் உருவாக்காது, மற்றும் செய்தி வெளியீடு இல்லை .

இணைப்பான் ஒரு பொருளின் கோப்பு வடிவத்தை அங்கீகரிக்க முடியாவிட்டால், அது ஒரு இணைப்பு ஸ்கிரிப்ட் என்று கருதிக் கொள்ளும். இந்த வழியில் குறிப்பிட்ட ஒரு ஸ்கிரிப்ட் இணைப்புக்கான முக்கிய இணைப்பு ஸ்கிரிப்ட்டை (இயல்புநிலை இணைப்பு ஸ்கிரிப்ட் அல்லது டி-ஐப் பயன்படுத்தி குறிப்பிடப்பட்ட ஒன்று) மேம்படுத்துகிறது. இந்த அம்சம் ஒரு பொருளை அல்லது ஒரு காப்பகமாக தோன்றும் கோப்புக்கு எதிராக இணைக்க அனுமதிக்கிறது, ஆனால் உண்மையில் சில குறியீடு மதிப்புகளை மட்டுமே வரையறுக்கிறது அல்லது மற்ற பொருள்களை ஏற்ற "INPUT" அல்லது "GROUP" ஐ பயன்படுத்துகிறது. இந்த வழியில் ஒரு ஸ்கிரிப்ட்டை குறிப்பிடுவது முக்கிய இணைப்பு ஸ்கிரிப்ட்டை அதிகரிக்கிறது என்பதை கவனத்தில் கொள்க. இயல்புநிலை இணைப்பு ஸ்கிரிப்ட்டை முற்றிலும் மாற்ற, -T விருப்பத்தை பயன்படுத்தவும்.

ஒரு பெயரைக் குறிக்கும் விருப்பங்களுக்கு, விருப்பத்தேர்வு வாதங்கள் இடைவெளி இடைவெளியில்லாமல் விருப்பத்தேர்வைக் கண்டிப்பாக பின்பற்ற வேண்டும் அல்லது அவற்றிற்கு தேவைப்படும் விருப்பத்தை உடனடியாக தனி விவாதங்களாக வழங்க வேண்டும்.

பல பெயர்கள் யாருடைய பெயர்கள், ஒரு டாஷ் அல்லது இரண்டு விருப்பம் பெயர் முன்னுரிமை விருப்பங்கள்; எடுத்துக்காட்டாக, -trace-symbol மற்றும் --trace-symbol சமமானவை. குறிப்பு - இந்த விதிக்கு ஒரு விதிவிலக்கு உள்ளது. ஒரு சிறிய வழக்கு 'ஓ' என்று தொடங்கும் பல கடித விருப்பங்களை இரண்டு கோடுகளால் மட்டுமே முன்னெடுக்க முடியும். இது -o விருப்பத்துடன் குழப்பத்தை குறைப்பதாகும். எனவே உதாரணமாக - வெளியீட்டு கோப்பு பெயரை மாயமாக அமைக்கிறது, அதோடு வெளியீட்டில் NMAGIC கொடியை அமைக்கிறது.

பல-கடித விருப்பங்களுக்கான வாதங்கள் ஒன்று சமிக்ஞையால் விருப்பத்தின் பெயரிலிருந்து பிரிக்கப்பட வேண்டும் அல்லது அவற்றிற்கு தேவைப்படும் விருப்பத்தை உடனடியாக தனி விவாதங்களாக அளிக்க வேண்டும். எடுத்துக்காட்டாக, --trace-symbol foo மற்றும் --trace-symbol = foo ஆகியவை சமம். பல-கடிதம் விருப்பங்களின் பெயர்களின் தனிப்பட்ட சுருக்கங்கள் ஏற்றுக்கொள்ளப்படுகின்றன.

குறிப்பு - ஒரு தொகுப்பான் இயக்கி (எ.கா. ஜி.சி.சி ) வழியாக இணைப்பாளரை மறைமுகமாகப் பயன்படுத்தினால், அனைத்து இணைப்புக் கட்டளை வரி விருப்பங்களும் -Wl, (அல்லது குறிப்பிட்ட கம்பைலர் இயக்கிக்கு பொருத்தமாக இருந்தால்)

gcc -Wl, - startgroup foo.o bar.o -Wl, - endgroup

இது முக்கியமானது, ஏனெனில் இல்லையெனில் தொகுப்பான் இயக்கி நிரல் இணைப்பு விருப்பங்களை மெதுவாக கைவிட்டு, தவறான இணைப்பை விளைவிக்கும்.

குனு இணைப்பாளரால் ஏற்றுக்கொள்ளப்பட்ட பொதுவான கட்டளை வரி சுவிட்சுகளின் அட்டவணையை இங்கே காணலாம்:

-ஒரு சொல்

இந்த விருப்பம் HP / UX பொருந்தக்கூடியது ஆதரிக்கப்படுகிறது. முக்கிய வாதம், சரங்களைக் காப்பகப்படுத்த , பகிரப்பட்ட அல்லது இயல்புநிலையாக இருக்க வேண்டும். -அமைப்புச் செயல்பாட்டுக்கு சமமானதாகும்- பெஸ்டாடிக் , மற்றும் மற்ற இரண்டு முக்கிய வார்த்தைகள் செயல்பாட்டுரீதியாக சமமான- பிட்னிக்ம் ஆகும் . இந்த விருப்பம் எத்தனை முறை பயன்படுத்தப்படலாம்.

- ஒரு கட்டமைப்பு

--architecture = கட்டமைப்பு

Ld இன் தற்போதைய வெளியீட்டில், இந்த விருப்பம் இன்டெல் 960 குடும்ப கட்டமைப்புகளுக்கு மட்டுமே பயன்படுகிறது. அந்த ld உள்ளமைவில், கட்டமைப்பு வாதம், 960 குடும்பத்தில் உள்ள ஒரு குறிப்பிட்ட கட்டிடத்தை அடையாளப்படுத்துகிறது, சில பாதுகாப்புகளை செயல்படுத்தவும், காப்பக-நூலக தேடல் பாதையை மாற்றியமைக்கிறது.

Ld இன் எதிர்கால வெளியீடுகள் மற்ற கட்டிடக்கலை குடும்பங்களுக்கான இதே செயல்பாட்டை ஆதரிக்கலாம்.

-b உள்ளீடு-வடிவம்

--format = உள்ளீடு-வடிவம்

ld ஒன்றுக்கு மேற்பட்ட வகையான பொருள் கோப்பை ஆதரிக்க கட்டமைக்கப்படலாம். உங்கள் ld இந்த வழியில் உள்ளமைக்கப்பட்டால், கட்டளை வரியில் இந்த விருப்பத்தை பின்பற்றக்கூடிய உள்ளீட்டு பொருள் கோப்புகளை பைனரி வடிவமைப்பை குறிப்பிடுவதற்கு -b விருப்பத்தை பயன்படுத்தலாம். மாற்று பொருள் வடிவமைப்புகளை ஆதரிக்க ld கட்டமைக்கப்பட்டிருக்கும் போதும், ஒவ்வொரு கணினியிலும் உள்ள இயல்புநிலை உள்ளீடு வடிவமைப்பை எதிர்பார்க்கும் வகையில் LD கட்டமைக்கப்பட வேண்டும் என நீங்கள் பொதுவாக குறிப்பிட தேவையில்லை. உள்ளீடு-வடிவம் ஒரு உரை சரம், BFD நூலகங்கள் ஆதரிக்கும் ஒரு குறிப்பிட்ட வடிவமைப்பின் பெயர். ( Objdump -i உடன் கிடைக்கும் பைனரி வடிவங்களை நீங்கள் பட்டியலிடலாம்.)

நீங்கள் அசாதாரண பைனரி வடிவமைப்பில் கோப்புகளை இணைக்கும்போது இந்த விருப்பத்தை பயன்படுத்தலாம். ஒரு குறிப்பிட்ட வடிவமைப்பில் உள்ள ஒவ்வொரு பொருளின் பொருளுக்கும் முன்பாக -b உள்ளீடு-வடிவத்தை உள்ளடக்குவதன் மூலம், வெளிப்படையாக வடிவங்களை (வெவ்வேறு வடிவங்களின் பொருள் கோப்புகளை இணைக்கும்போது) -b ஐப் பயன்படுத்தலாம்.

இயல்புநிலை வடிவமைப்பு சூழல் மாறி "GNUTARGET" இல் இருந்து எடுக்கப்படுகிறது.

நீங்கள் "TARGET" கட்டளையைப் பயன்படுத்தி, ஸ்கிரிப்டிலிருந்து உள்ளீடு வடிவமைப்பை வரையறுக்கலாம்;

-c MRI-commandfile

--mri-script = MRI-commandfile

எம்ஆர்ஐ தயாரித்த இணைப்பிகளுடன் இணக்கத்தன்மைக்கு, ஜி.என்.எல் ஆவணத்தில் உள்ள மெ.மு.ஆர். ஸ்கிரிப்ட் கோப்புகள் பிரிவில் விவரிக்கப்பட்ட ஒரு மாற்று, கட்டுப்படுத்தப்பட்ட கட்டளை மொழியில் எழுதப்பட்ட ஸ்கிரிப்ட் கோப்புகளை எல்டி ஏற்றுகிறது. எம்.ஆர்.ஐ ஸ்கிரிப்ட் கோப்புகளை அறிமுகப்படுத்துதல் -c ; பொது-நோக்கம் எல்டி ஸ்கிரிப்டிங் மொழியில் எழுதப்பட்ட இணைப்பு ஸ்கிரிப்டை இயக்குவதற்கு -T விருப்பத்தை பயன்படுத்தவும். MRI-cmdfile இல்லையெனில், LD எந்த -எல் விருப்பங்களுடனான குறிப்பிடப்பட்ட அடைவுகளில் அதைத் தேடுகிறது.

-d

-dc

-dp

இந்த மூன்று விருப்பங்கள் சமமானவை; பல இணைப்புகள் மற்ற இணைப்புகளுடன் இணக்கத்தன்மைக்கு துணைபுரிகிறது. ஒரு இடப்பெயர்ச்சி வெளியீட்டுக் கோப்பினை குறிப்பிட்டிருந்தாலும் அவை பொதுவான சின்னங்களுக்கு இடம் ஒதுக்கப்படுகின்றன ( -r ). "FORCE_COMMON_ALLOCATION" ஸ்கிரிப்ட் கட்டளை அதே விளைவைக் கொண்டுள்ளது.

-e நுழைவு

--entry = நுழைவு

இயல்புநிலை நுழைவு புள்ளிக்கு பதிலாக, உங்கள் நிரல் செயல்படுத்தப்படுவதைத் தொடங்கும் வெளிப்படையான சின்னமாக நுழைவு பயன்படுத்தவும். நுழைவு என்ற பெயரில் எந்த குறியீடும் இல்லாவிட்டால், ஒரு எண்ணாக இணைப்புகளை இணைக்க முயற்சிப்பார், மற்றும் நுழைவு முகவரியாக (எண் 10 இல் விளக்கம் செய்யப்படும்), அடிப்படை 16 ஐ பயன்படுத்த, அல்லது ஒரு முக்கிய 0 ஐ பயன்படுத்தலாம் அடிப்படை 8).

-E

--export-டைனமிக்

ஒரு மாறும் இணைக்கப்பட்ட இயங்கமைப்பு உருவாக்கும் போது, ​​அனைத்து சின்னங்களையும் மாறும் குறியீட்டு அட்டவணையில் சேர்க்கலாம். டைனமிக் சிம்பிள் டேபிள் டைனமிக் பொருள்களிலிருந்து ரன் நேரத்தில் காணக்கூடிய சின்னங்களின் தொகுப்பாகும்.

இந்த விருப்பத்தை நீங்கள் பயன்படுத்தவில்லையெனில், மாறும் குறியீட்டு அட்டவணை பொதுவாக குறிக்கப்படும் சில குறியீட்டு பொருள் குறிக்கப்பட்ட அந்த சின்னங்களை மட்டுமே கொண்டிருக்கும்.

நீங்கள் "dlopen" ஐப் பயன்படுத்தினால், இது மாறும் பொருளை ஏற்றினால், நிரல் மூலம் வரையறுக்கப்பட்ட குறியீட்டை மீண்டும் குறிக்க வேண்டும், வேறு சில மாறும் பொருளைக் காட்டிலும், இந்த நிரலை இணைக்கும்போது இந்த விருப்பத்தை நீங்கள் பயன்படுத்தலாம்.

வெளியீட்டு வடிவம் ஆதரிக்கிறது என்றால் மாறும் குறியீட்டு அட்டவணையில் எந்த குறியீட்டை சேர்க்க வேண்டும் என்பதை கட்டுப்படுத்த பதிப்பு ஸ்கிரிப்டையும் பயன்படுத்தலாம். {VERSION} இல் பதிப்பு -ஸ்கிரிப்ட்டின் விளக்கத்தை காண்க.

-EB

பெரிய-இறுதி பொருள்களை இணைக்கவும். இது முன்னிருப்பு வெளியீட்டு வடிவத்தை பாதிக்கிறது.

-EL

சிறிய-முடிவு பொருள்களை இணைக்கவும். இது முன்னிருப்பு வெளியீட்டு வடிவத்தை பாதிக்கிறது.

-f

- துணை பெயர்

ஒரு ELF பகிர்ந்த பொருள் உருவாக்கும் போது, ​​உள்ளக DT_AUXILIARY களத்தை குறிப்பிட்ட பெயருக்கு அமைக்கவும். பகிரப்பட்ட பொருள் பெயரின் குறியீட்டு அட்டவணையில் துணை வடிகட்டி குறியீட்டு அட்டவணை பயன்படுத்தப்பட வேண்டும் என்று மாறும் இணைப்புக்கு இது சொல்கிறது.

நீங்கள் இந்த வடிகட்டி பொருளுக்கு எதிராக ஒரு நிரலை இணைத்திருந்தால், பின்னர் நீங்கள் நிரலை இயக்கும் போது, ​​மாறும் இணைப்பானது DT_AUXILIARY களத்தைப் பார்ப்பீர்கள். வடிகட்டி பொருளில் இருந்து எந்த குறியீடும் மாறும் இணைப்பானது தீர்க்கப்பட்டால், பகிரப்பட்ட பொருள் பெயரில் வரையறுக்கப்பட்டதா என முதலில் பரிசோதிக்கும். ஒன்று இருந்தால், அது வடிப்பான் பொருளில் உள்ள வரையறைக்கு பதிலாக பயன்படுத்தப்படும். பகிரப்பட்ட பொருள் பெயர் இல்லை. இதனால் பகிர்வு செய்யப்பட்ட பொருள் பெயர் சில செயல்பாடுகளை மாற்றுவதற்கு பயன்படுத்தப்படலாம், ஒருவேளை பிழைத்திருத்தலுக்கு அல்லது இயந்திர குறிப்பிட்ட செயல்திறனுக்காக.

இந்த விருப்பம் ஒருமுறைக்கு மேல் குறிப்பிடப்படலாம். கட்டளை வரியில் தோன்றும் வரிசையில் DT_AUXILIARY உள்ளீடுகள் உருவாக்கப்படும்.

-F பெயர்

- பெயர் பெயர்

ஒரு ELF பகிர்ந்த பொருள் உருவாக்கும் போது, ​​குறிப்பிட்ட பெயருக்கு அக DT_FILTER புலத்தை அமைக்கவும். பகிரப்பட்ட பொருள் பெயரின் குறியீட்டு அட்டவணையில் ஒரு வடிப்பான் ஆக பயன்படுத்தப்பட வேண்டும்.

நீங்கள் இந்த வடிகட்டி பொருளுக்கு எதிராக ஒரு நிரலை இணைத்திருந்தால், நீங்கள் நிரலை இயக்கும்போது, ​​மாறும் இணைப்பானது DT_FILTER புலத்தைக் காணும். டைனமிக் லிண்டர் வழக்கம் போல் வடிகட்டி பொருளின் குறியீட்டு அட்டவணையின் படி சின்னங்களைத் தீர்க்கும், ஆனால் அது உண்மையில் பகிரப்பட்ட பொருள் பெயரில் உள்ள வரையறைகளுடன் இணைக்கப்படும். இதனால் வடிகட்டி பொருள் பொருள் பெயர் வழங்கப்பட்ட குறியீடுகள் ஒரு துணைக்குழு பயன்படுத்த தேர்வு செய்யலாம்.

சில பழைய இணைப்பான்கள் -F விருப்பத்தை உள்ளீடு மற்றும் வெளியீடு பொருள் கோப்புகள் ஆகியவற்றிற்கான பொருள்-கோப்பினைக் குறிப்பிடுவதற்காக ஒரு தொகுப்பு கருவிப்பட்டி முழுவதும் பயன்படுத்தினர். குனு இணைப்பு இந்த நோக்கத்திற்காக மற்ற வழிமுறைகளைப் பயன்படுத்துகிறது: the -b , --format , --oformat விருப்பங்கள், இணைப்பு ஸ்கிரிப்ட்டுகளில் "TARGET" கட்டளை மற்றும் "GNUTARGET" சூழல் மாறி. ELF பகிரப்பட்ட பொருளை உருவாக்கும்போது குனு இணைப்பு -F விருப்பத்தை புறக்கணிக்கும்.

-பினி பெயர்

ELF இயங்கக்கூடிய அல்லது பகிரப்பட்ட பொருளை உருவாக்கும்போது, ​​செயல்படக்கூடிய அல்லது பகிரப்பட்ட பொருளை ஏற்றப்படாத போது NAME ஐ அழைக்கவும், செயல்பாடுகளின் முகவரிக்கு DT_FINI ஐ அமைப்பதன் மூலம் அழைக்கவும். முன்னிருப்பாக, இணைப்பு "_fini" என அழைக்கிறார்.

-g

புறக்கணிக்கப்பட்டது. பிற கருவிகளுடன் இணக்கத்தன்மைக்கு வழங்கப்பட்டது.

-G மதிப்பு

--gpsize = மதிப்பு

அதிகபட்ச ஜிபி பதிப்பை அளவைப் பயன்படுத்தி உகந்ததாக பொருள்களை அமைக்கவும். இது MIPS ECOFF போன்ற பொருள்களின் கோப்பு வடிவங்களுக்கான அர்த்தமுள்ளதாகும், இது பெரிய மற்றும் சிறிய பொருள்களை வெவ்வேறு பிரிவுகளாக பிரிக்க உதவுகிறது. இது பிற பொருள்களின் கோப்பு வடிவங்களுக்கு புறக்கணிக்கப்படுகிறது.

-h பெயர்

-சென்னை = பெயர்

ஒரு ELF பகிர்ந்த பொருள் உருவாக்கும் போது, ​​குறிப்பிட்ட பெயருக்கு அக DT_SONAME புலம் அமைக்கவும். இயங்கக்கூடிய ஒரு DT_SONAME புலம் கொண்ட பகிர்வுப் பொருளுடன் இணைக்கப்பட்டிருக்கும் போது, ​​இயங்கக்கூடிய இயக்கம் இயங்கும்போது, ​​இணைப்பாளருக்கு கொடுக்கப்பட்ட கோப்பு பெயரைப் பயன்படுத்துவதை விட DT_SONAME புலத்தில் குறிப்பிடப்பட்ட பகிரப்பட்ட பொருளை ஏற்ற முயற்சிக்கும்.

-நான்

ஒரு கூடுதல் இணைப்பு (விருப்பத்தை -ஆர் ) அதே போல் செய்யவும்.

-இன் பெயர்

ELF இயங்கக்கூடிய அல்லது பகிரப்பட்ட பொருளை உருவாக்கும்போது, ​​செயல்படக்கூடிய அல்லது பகிர்வு செய்யப்பட்ட பொருள் ஏற்றப்பட்டால் NAME ஐ அழைக்கவும், DT_INIT ஐ செயல்பாட்டின் முகவரியை அமைப்பதன் மூலம் அழைக்கவும். முன்னிருப்பாக, இணைப்பு "_init" என அழைக்கிறார்.

-l காப்பகம்

--library = காப்பகம்

இணைக்க கோப்புகளின் காப்பகத்தின் காப்பக கோப்பு காப்பகத்தைச் சேர்க்கவும். இந்த விருப்பம் எத்தனை முறை பயன்படுத்தப்படலாம். ld குறிப்பிட்ட ஒவ்வொரு காப்பகத்திற்கும் "libarchive.a" நிகழ்வுகள் அதன் பாதை-பட்டியலை தேடும்.

பகிரப்பட்ட நூலகங்களை ஆதரிக்கும் அமைப்புகளில், ld ".a" ஐ தவிர வேறு நீட்டிப்புகளுடன் நூலகங்களைத் தேடலாம். குறிப்பாக, ELF மற்றும் SunOS கணினிகளில் ld ".a" விரிவாக்கத்துடன் ஒரு தேடலைத் தேடுவதற்கு முன்பு ".so" விரிவாக்கத்துடன் நூலகத்திற்கு ஒரு அடைவு தேட வேண்டும். மாநாட்டால், ஒரு ". அப்போ" நீட்டிப்பு பகிரப்பட்ட நூலகத்தைக் குறிக்கிறது.

இணைப்பான் கட்டளை வரியில் குறிப்பிட்டுள்ள இடத்திலேயே ஒரு காப்பகத்தை ஒரு முறை மட்டுமே தேடுவார்கள். காப்பகத்தை கட்டளை வரியில் காப்பகத்திற்கு முன் தோன்றிய சில பொருள்களில் வரையறுக்கப்படாத குறியீட்டை வரையறுத்திருந்தால், காப்பாளர் ஆவணத்தில் இருந்து பொருத்தமான கோப்பு (கள்) சேர்க்கப்படும். இருப்பினும், கட்டளை வரியில் தோன்றும் ஒரு பொருளில் வரையறுக்கப்படாத குறியீடானது இணைப்பாளரை மீண்டும் காப்பகத்தைத் தேடச் செய்யாது.

பார்க்கவும் - ( காப்பகம் பல முறை தேட இணைப்பை இணைப்பதற்கான வழிமுறை.

கட்டளை வரியில் பல முறை அதே காப்பகத்தை பட்டியலிடலாம்.

இந்த வகை காப்பகத் தேடல் யுனிக்ஸ் இணைப்புகளுக்கு தரநிலையாக உள்ளது. இருப்பினும், நீங்கள் ld onAIX ஐப் பயன்படுத்துகிறீர்கள் என்றால், அது AIX இணைப்பாளரின் நடத்தையிலிருந்து வேறுபட்டது என்பதை கவனிக்கவும்.

-L searchdir

--library-path = searchdir

பாதை நூலகங்கள் மற்றும் ld கட்டுப்பாட்டு ஸ்கிரிப்டுகளுக்கு ld தேடும் பாதைகளின் பட்டியலுக்கு பாதை தேடுதரைச் சேர்க்கவும். நீங்கள் இந்த விருப்பத்தை எத்தனை முறை பயன்படுத்தலாம். அடைவுகள் கட்டளை வரியில் குறிப்பிடப்பட்ட வரிசையில் தேடப்படுகின்றன. கட்டளை வரியில் குறிப்பிடப்பட்டுள்ள கோப்பகங்கள் முன்னிருப்பு அடைவுகளுக்கு முன் தேடப்படுகின்றன. எல்லா விருப்பத்தேர்வுகளும் தோன்றும் வரிசையில் இருந்தாலும், அனைத்து -எல் விருப்பங்கள் அனைத்தும் -l விருப்பங்களுக்கு பொருந்தும்.

Searchdir "=" உடன் தொடங்குகிறது என்றால், "=" sysroot prefix ஆல் மாற்றப்படும், linker கட்டமைக்கப்படும் போது குறிப்பிடப்பட்ட ஒரு பாதை.

தேடும் பாதைகளின் முன்னிருப்பு தொகுப்பு ( -எல் உடன் குறிப்பிடப்படவில்லை) எந்த எல்யூல்யூஷன் பயன்முறையை ld பயன்படுத்துகிறது, சில சமயங்களில் இது எவ்வாறு கட்டமைக்கப்படுகிறது என்பதையும் சார்ந்துள்ளது.

பாதைகள் "SEARCH_DIR" கட்டளையுடன் ஒரு இணைப்பு ஸ்கிரிப்டில் குறிப்பிடப்படலாம். இந்த வழியில் குறிப்பிட்டிருக்கும் அடைவுகள் கட்டளை வரியில் இணைப்பு ஸ்கிரிப்ட் தோன்றும் புள்ளியில் தேடப்படுகின்றன.

-m சமநிலை

சமநிலை இணைப்பியை மாற்றியமைக்கவும். --verbose அல்லது -V விருப்பங்களைக் கொண்டு கிடைக்கும் மாதிரிகள் பட்டியலிடலாம்.

-m விருப்பம் பயன்படுத்தப்படாவிட்டால், "LDEMULATION" சூழல் மாறியில் இருந்து சமன்பாடு வரையறுக்கப்படுகிறது.

இல்லையெனில், இயல்புநிலை சமன்பாடு இணைப்பு எவ்வாறு கட்டமைக்கப்படுகிறது என்பதைப் பொறுத்தது.

-m

--print வரைபடத்தில்

நிலையான வெளியீட்டிற்கு இணைப்பு வரைபடத்தை அச்சிடுக. ஒரு இணைப்பு வரைபடம் பின்வரும் இணைப்பு உள்ளிட்ட தகவலை வழங்குகிறது:

*

ஆப்ஜெக்ட் கோப்புகள் மற்றும் சின்னங்கள் நினைவகத்தில் இடம்பெற்றுள்ளன.

*

பொதுவான அடையாளங்கள் எப்படி ஒதுக்கப்படுகின்றன.

*

காப்பக உறுப்பினரைக் கொண்டுவரும் சின்னத்தை குறிப்பிடுவதன் மூலம், இணைப்பில் உள்ள அனைத்து காப்பக உறுப்பினர்களும் அடங்கியுள்ளனர்.

-n

--nmagic

பிரிவுகளின் பக்கம் சீரமைப்பு அணைக்க, மற்றும் முடிந்தால் வெளியீடு "NMAGIC" என குறிக்கவும்.

-N

--omagic

உரை மற்றும் தரவு பிரிவுகளை படிக்கக்கூடிய மற்றும் எழுதக்கூடியதாக அமைக்கவும். மேலும், தரவு பிரிவை பக்கம் பக்கமாக்க வேண்டாம், பகிரப்பட்ட நூலகங்களுக்கு எதிராக இணைப்பை முடக்கவும். வெளியீடு வடிவமைப்பு யுனிக்ஸ் பாணி மேஜிக் எண்களை ஆதரிக்கிறது எனில், வெளியீடு "OMAGIC" என குறிக்கவும்.

--no-omagic

இந்த விருப்பம் -N விருப்பத்தின் விளைவுகளில் பெரும்பாலானவற்றை எதிர்க்கிறது. இது உரைப் பிரிவை படிக்க மட்டும்-க்கு மட்டுமே, மற்றும் தரவு பிரிவானது பக்கம்-சீரமைக்கப்படுவதைத் தூண்டுகிறது. குறிப்பு - இந்த விருப்பம் பகிர்வு நூலகங்களுக்கு எதிராக இணைப்பதை செயல்படுத்தாது. இதைப் பயன்படுத்தவும் - பைனான்ஸ் .

-ஓ வெளியீடு

--output = வெளியீடு

Ld தயாரித்த நிரலுக்கான பெயர் வெளியீட்டைப் பயன்படுத்தவும்; இந்த விருப்பம் குறிப்பிடப்படவில்லை எனில், a.out என்பது இயல்பாக பயன்படுத்தப்படும். ஸ்கிரிப்ட் கட்டளையான "OUTPUT" வெளியீட்டு கோப்பு பெயரையும் குறிப்பிட முடியும்.

-O நிலை

நிலை என்றால் பூஜ்யம் ld விட அதிகமான எண் மதிப்புகளை வெளியீட்டை மேம்படுத்துகிறது. இது கணிசமாக நீண்ட காலம் ஆகலாம், எனவே இது இறுதி பைனரிக்கு மட்டுமே செயல்படுத்தப்பட வேண்டும்.

-q

--emit-relocs

முழுமையாக இணைக்கப்பட்ட exececutables உள்ள இடமாற்ற பிரிவுகள் மற்றும் உள்ளடக்கங்களை விட்டு. செயல்திறன் திருத்தங்கள் செய்ய சரியான மாற்றங்களைச் செய்வதற்கு இந்த இடுகை இணைப்பு பகுப்பாய்வு மற்றும் உகப்பாக்கம் கருவிகள் தேவைப்படலாம். இது பெரிய செயலாக்கங்களில் விளைகிறது.

இந்த விருப்பம் தற்போது ELF தளங்களில் மட்டுமே ஆதரிக்கப்படுகிறது.

-r

--relocateable

இடமாற்றத்தக்க வெளியீட்டை உருவாக்குதல் --- அதாவது, ஒரு வெளியீட்டு கோப்பை உருவாக்குகிறது, இது ld க்கு உள்ளீடாக செயல்படுகிறது. இது பெரும்பாலும் பகுதி இணைக்கும் . ஒரு பக்க விளைவாக, நிலையான Unix மாய எண்களை ஆதரிக்கும் சூழல்களில், இந்த விருப்பம் வெளியீட்டு கோப்பின் மாய எண்ணை "OMAGIC" க்கு அமைக்கிறது. இந்த விருப்பம் குறிப்பிடப்படவில்லை என்றால், ஒரு முழுமையான கோப்பு உருவாக்கப்படும். C ++ நிரல்களை இணைக்கும் போது, ​​இந்த விருப்பம் கட்டமைப்பாளர்களுக்கு குறிப்புகளை தீர்க்காது; இதை செய்ய, பயன்படுத்தவும்.

வெளியீட்டு கோப்பில் ஒரு உள்ளீடு கோப்பில் அதே வடிவத்தில் இல்லாதபோது, ​​அந்த உள்ளீட்டு கோப்பில் எந்த இடமும் இல்லை என்றால் பகுதி இணைப்பு இணைக்கப்படுகிறது. வெவ்வேறு வெளியீட்டு வடிவங்கள் இன்னும் கட்டுப்பாடுகள் கொண்டிருக்கும்; உதாரணமாக சில "a.out" அடிப்படையிலான வடிவங்கள் மற்ற வடிவங்களில் உள்ளீட்டுக் கோப்புகளுடன் பகுதி இணைப்புகளை ஆதரிக்கவில்லை.

இந்த விருப்பம் -i போன்றது.

-R கோப்பு பெயர்

--just-symbols = filename

கோப்பு பெயரிலிருந்து குறியீட்டுப் பெயர்களும் அவற்றின் முகவரியையும் வாசிக்கவும், ஆனால் அதை மாற்றவோ அல்லது வெளியீட்டில் சேர்க்கவோ கூடாது. இது உங்கள் வெளியீட்டுக் கோப்பு மற்ற நிரல்களில் வரையறுக்கப்பட்ட நினைவகத்தின் முழுமையான இடங்களுக்கு அடையாளமாக குறிப்பிட அனுமதிக்கிறது. நீங்கள் இந்த விருப்பத்தை ஒரு முறை பயன்படுத்தலாம்.

மற்ற ELF இணைப்பிகளுடன் இணக்கத்தன்மைக்கு, -R விருப்பத்தை ஒரு கோப்பினுடைய பெயரைக் காட்டிலும் ஒரு அடைவு பெயரைப் பயன்படுத்தினால், அது -rpath விருப்பமாக கருதப்படுகிறது.

-s

--strip அனைத்து

வெளியீட்டு கோப்பில் இருந்து எல்லா குறியீட்டு தகவல்களையும் விலக்கவும்.

-S

--strip-சரிசெய்வதற்கான

வெளியீட்டு கோப்பில் இருந்து பிழைத்திருத்த குறியீட்டு தகவலை (ஆனால் அனைத்து சின்னங்கள் அல்ல) விலக்கு.

-t

--trace

உள்ளீடு கோப்புகளை பெயர்கள் ld செயல்முறைகளாக அச்சிட.

-T scriptfile

--script = scriptfile

ஸ்கிரிப்ட் இணைப்பை இணைப்பு ஸ்கிரிப்டாக பயன்படுத்தவும். இந்த ஸ்கிரிப்ட் ld இன் முன்னிருப்பு இணைப்பு ஸ்கிரிப்ட்டை மாற்றும் (அதற்கு பதிலாக), எனவே கட்டளைப்பு வெளியீடு கோப்பை விவரிக்க தேவையான அனைத்தையும் குறிப்பிட வேண்டும். தற்போதைய அடைவில் scriptfile இல்லை என்றால், முன்னால் உள்ள-L விருப்பங்களின் மூலம் குறிப்பிடப்பட்டிருக்கும் அடைவுகளில் "ld" அதைக் காணும். பல- T விருப்பங்கள் குவிந்து.

-u சின்னம்

- === symbol

வெளியீட்டு கோப்பில் ஒரு வரையறுக்கப்படாத குறியீடாக படை சின்னத்தை உள்ளிட வேண்டும். இதைச் செய்வது, உதாரணமாக, நிலையான நூலகங்களிலிருந்து கூடுதல் தொகுதிகளை இணைக்கும். -U கூடுதல் வரையறுக்கப்படாத குறியீடுகளை உள்ளிட பல்வேறு விருப்பத்தேர்வு வாதங்களுடன் மீண்டும் மீண்டும் செய்யப்படலாம். இந்த விருப்பம் "EXTERN" இணைப்பு ஸ்கிரிப்ட் கட்டளைக்கு சமமானது.

-Ur

C ++ நிரல்கள் தவிர வேறு எந்தவொரு பயன்பாட்டிற்கும், இந்த விருப்பம் -r க்கு சமமானது: இது இடப்பெயர்ச்சி வெளியீட்டை உருவாக்குகிறது - அதாவது அதாவது ld க்கு உள்ளீடு என வழங்கக்கூடிய வெளியீடு கோப்பு. C ++ நிரல்களை இணைக்கும் போது, -ஆர் போன்றவை , கட்டமைப்பாளர்களுக்கான குறிப்புகளை தீர்த்துவைக்கின்றன. அதை பயன்படுத்துவதற்கு வேலை செய்யவில்லை -அது இணைக்கப்பட்டுள்ள கோப்புகளில் -அல்லது ; ஆலைக்குரிய அட்டவணை உருவாக்கப்பட்டவுடன், அது சேர்க்கப்படாது. பயன்படுத்தவும் -அல்லது கடைசி பகுதி இணைப்புக்கு, மற்றும் மற்றவர்களுக்கு -r .

- தனிப்பட்ட [= SECTION ]

SECTION பொருந்தும் ஒவ்வொரு உள்ளீட்டு பிரிவிற்கும் தனி வெளியீடு பிரிவை உருவாக்குகிறது அல்லது ஒவ்வொரு அனாதை உள்ளீடு பிரிவிற்கும் விருப்பமான வைல்டு கார்டை SECTION வாதம் காணவில்லை எனில். ஒரு அனாதை பிரிவு ஒரு இணைப்பு ஸ்கிரிப்ட்டில் குறிப்பிடப்படவில்லை. கட்டளை வரியில் பல முறை நீங்கள் இந்த விருப்பத்தை பயன்படுத்தலாம்; இது உள்ளீட்டு பிரிவின் சாதாரண இணைப்பையும் அதே பெயருடன் தடுக்கிறது, வெளியீட்டு பிரிவில் ஒரு இணைப்பு ஸ்கிரிப்ட்டில் உள்ள ஒதுக்கீடுகளை மீறுகிறது.

-v

--version

-V

Ld க்கு பதிப்பு எண் காட்டவும் . -V விருப்பம் ஆதரிக்கப்படும் முன்மாதிரிகளை பட்டியலிடுகிறது.

-எக்ஸ்

--discard அனைத்து

எல்லா உள்ளூர் சின்னங்களையும் நீக்கவும்.

-எக்ஸ்

--discard-உள்ளூர்

அனைத்து தற்காலிக உள்ளூர் சின்னங்களையும் நீக்கவும். பெரும்பாலான இலக்குகளுக்கு, இது எல் உடன் தொடங்கும் அனைத்து உள்ளூர் சின்னங்களும் ஆகும்.

-என் சின்னம்

--trace-symbol = சின்னம்

சின்னம் தோன்றும் ஒவ்வொரு இணைக்கப்பட்ட கோப்பின் பெயரை அச்சிடவும். இந்த விருப்பம் எத்தனை முறை வழங்கப்படலாம். பல முறைகளில், அடிக்கோடிட்டுக் கொள்ளுதல் அவசியம்.

உங்கள் இணைப்பில் ஒரு வரையறுக்கப்படாத சின்னத்தை வைத்திருக்கும் போது இந்த விருப்பத்தேர்வு பயனுள்ளதாக இருக்கும், ஆனால் குறிப்பு எங்கிருந்து வருகிறது என்பது தெரியாது.

-Y பாதை

இயல்புநிலை நூலக தேடல் பாதையில் பாதையைச் சேர்க்கவும். இந்த விருப்பம் Solaris பொருந்தக்கூடியதாக உள்ளது.

-z சொல்

அங்கீகரிக்கப்பட்ட சொற்கள் "initfirst", "உள்நோக்கி", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "இப்போது", "தோற்றம்", "combreloc", "nocombreloc" மற்றும் "nocopyreloc ". மற்ற சொற்கள் சோலாரிஸ் இணக்கத்தன்மையை புறக்கணிக்கின்றன. "initfirst" பொருளை வேறு ஏதேனும் பொருள்களுக்கு முன்பாக இயக்கத்தில் முதன் முதலில் ஆரம்பிக்க வேண்டும். "குறியாக்கம்" அதன் குறியீட்டு அட்டவணை அனைத்து குறியீட்டிற்கும் முன்னதாகவே குறிக்கப்படும், ஆனால் முதன்மை இயங்கக்கூடியது என்பதை குறிக்கிறது. "loadltrtr" அதன் நிரலை நேரடியாக இயக்கத்தில் கொண்டிருக்கும் பொருள் குறிக்கிறது. "nodefaultlib" இந்த பொருளின் சார்பான தேடலை புறக்கணிக்கும் பொருள் குறிக்கிறது எந்த இயல்புநிலை நூலகம் தேடல் பாதைகள். "nodelete" குறிக்கோள், இயக்கத்தில் ஏற்றப்படக்கூடாது. "nodlopen" பொருள் "dlopen" கிடைக்கவில்லை குறிக்கிறது. "nodump" குறிக்கிறது பொருள் "dldump" மூலம் டம்ப் முடியாது. "இப்போது" பொருள் அல்லாத சோம்பேறி நிகழ்நேர பைண்டுடன் பொருளை குறிக்கிறது. "origin" குறிக்கோள் பொருள் ORIGIN ஐ கொண்டிருக்கக்கூடும். "defs" undefined symbols அனுமதிக்காது. "muldefs" பல வரையறைகள் அனுமதிக்கிறது. "combreloc" பல பின்தங்கிய பிரிவுகளை ஒருங்கிணைக்கிறது மற்றும் மாறும் குறியீட்டு தேடுதலுக்கான சாத்தியக்கூறுகளை உருவாக்க அவற்றை வகைப்படுத்துகிறது.

"nocombreloc" பல பிணைப்பு பிரிவுகளை ஒருங்கிணைக்கிறது. "nocopyreloc" நகல் நகல்களின் உற்பத்தியை முடக்குகிறது.

- ( காப்பகங்கள் -)

--start-group காப்பகங்கள் --end-group

காப்பகங்கள் காப்பக கோப்புகளை பட்டியலாக இருக்க வேண்டும். அவர்கள் வெளிப்படையான கோப்பு பெயர்கள், அல்லது -l விருப்பங்களை இருக்கலாம்.

புதிய வரையறுக்கப்படாத குறிப்புகள் உருவாக்கப்பட்ட வரை, குறிப்பிட்ட காப்பகங்கள் மீண்டும் மீண்டும் தேடுகின்றன. வழக்கமாக, ஒரு காப்பகம் கட்டளை வரியில் குறிப்பிடப்பட்ட வரிசையில் ஒரே ஒரு முறை மட்டுமே தேடப்படுகிறது. கட்டளை வரியில் பின்னர் தோன்றும் ஒரு காப்பகத்தில் ஒரு பொருளைக் குறிக்கும் ஒரு வரையறுக்கப்பட்ட குறியீட்டைத் தீர்க்க அந்த காப்பகத்தில் உள்ள ஒரு சின்னம் தேவைப்பட்டால், அந்த குறிப்பான் அந்த குறிப்பை தீர்க்க முடியாது. காப்பகங்களை தொகுப்பதன் மூலம், சாத்தியமான எல்லா குறிப்புகளும் தீர்க்கப்படும் வரை அவர்கள் மீண்டும் மீண்டும் தேடுவார்கள்.

இந்த விருப்பத்தை பயன்படுத்தி ஒரு குறிப்பிடத்தக்க செயல்திறன் செலவு உள்ளது. இரண்டு அல்லது அதற்கு மேற்பட்ட காப்பகங்களுக்கு இடையில் தவிர்க்க முடியாத சுற்றறிக்கையின் குறிப்புகள் இருக்கும்போது மட்டுமே பயன்படுத்த வேண்டும்.

--accept தெரியாத-உள்ளீடு பரம

--no-accept-தெரியாத-உள்ளீடு பரம

உள்ளமை கோப்புகளை அங்கீகரிக்க முடியவில்லை என்று இணைப்பாளரிடம் தெரிவிக்கிறார். ஊகம் என்னவென்றால் பயனர் என்ன செய்கிறார்களோ அதையொட்டி இந்த அறியப்படாத உள்ளீட்டுக் கோப்புகளில் வேண்டுமென்றே இணைக்க விரும்புகிறார்கள். 2.14 வெளியீட்டிற்கு முன்பு இணைப்பாளரின் முன்னிருப்பு நடத்தை இதுவாகும். வெளியீட்டிலிருந்து 2.14 க்கு முன்னிருப்பு நடத்தை இது போன்ற உள்ளீட்டு கோப்புகளை நிராகரிக்க வேண்டும், எனவே பழைய நடத்தை மீட்டமைக்க - ஏற்கெனவே உள்ளீடு-உள்ளீடு-வளைவு விருப்பம் சேர்க்கப்பட்டது.

-ச்சொல் முக்கியம்

இந்த விருப்பம் SunOS பொருந்தக்கூடியதுக்காக புறக்கணிக்கப்படுகிறது.

-Bdynamic

-dy

-call_shared

டைனமிக் நூலகங்களுக்கு எதிரான இணைப்பு. பகிர்வு நூலகங்கள் ஆதரிக்கப்படும் தளங்களில் இது அர்த்தமுள்ளதாகும். இத்தகைய தளங்களில் பொதுவாக இந்த விருப்பம் இயல்புநிலை. பல்வேறு விருப்பங்களுடன் பொருந்தக்கூடிய இந்த விருப்பத்தின் வெவ்வேறு வகைகள். கட்டளை வரியில் நீங்கள் இந்த விருப்பத்தை பலமுறை பயன்படுத்தலாம்: -l விருப்பங்களைத் தேடுவதற்கு இது நூலகத்தை தேடுகிறது.

-Bgroup

டைனமிக் பிரிவில் "DT_FLAGS_1" நுழைவில் "DF_1_GROUP" கொடி அமைக்கவும். இது இந்த பொருளில் உள்ள தோற்றத்தை கையாளுவதற்கு இயக்கநேர இணைப்பாளரை ஏற்படுத்துகிறது மற்றும் அதன் சார்புகள் குழுவிற்குள் மட்டுமே நிகழ்கின்றன. - இல்லை-வரையறுக்கப்படவில்லை . பகிர்வு நூலகங்களை ஆதரிக்கும் எல்எஃப் தளங்களில் இந்த விருப்பம் அர்த்தமுள்ளதாக உள்ளது.

-Bstatic

-dn

-non_shared

-static

பகிரப்பட்ட நூலகங்களுக்கு எதிராக இணைக்க வேண்டாம். பகிர்வு நூலகங்கள் ஆதரிக்கப்படும் தளங்களில் இது அர்த்தமுள்ளதாகும். பல்வேறு விருப்பங்களுடன் பொருந்தக்கூடிய இந்த விருப்பத்தின் வெவ்வேறு வகைகள். கட்டளை வரியில் நீங்கள் இந்த விருப்பத்தை பலமுறை பயன்படுத்தலாம்: -l விருப்பங்களைத் தேடுவதற்கு இது நூலகத்தை தேடுகிறது.

-Bsymbolic

பகிரப்பட்ட நூலகத்தை உருவாக்கும்போது, ​​பகிரப்பட்ட நூலகத்தில் உள்ள வரையறைக்கு உலகளாவிய குறியீடுகளைப் பற்றிய குறிப்புகள் பிணைக்கப்படும். பகிரப்பட்ட நூலகத்தில் வரையறுக்கப்பட்ட வரையறைக்கு ஒரு பகிரப்பட்ட நூலகத்திற்கு எதிராக இணைக்கப்பட்ட ஒரு திட்டம் சாத்தியமாகும். பகிர்வு நூலகங்களை ஆதரிக்கும் ELFplatforms இல் இந்த விருப்பம் மட்டுமே அர்த்தம்.

--check பிரிவுகள்

--no-பார்க்கலாம் பிரிவுகள்

இணைப்பான் முகவரிகள் அவற்றிற்கு ஏதேனும் மேலோட்டங்கள் இருப்பதைக் காண்பதற்குப் பின் நியமிக்கப்பட்டபின், கேட்கும்படி கேட்கிறார். வழக்கமாக இணைப்பவர் இந்த காசோலையைச் செய்வார், மேலும் ஏதாவது மேலோட்டங்கள் இருப்பின் அது பொருத்தமான பிழை செய்திகளை உருவாக்கும். இணைப்பாளரைப் பற்றி தெரிந்துகொள்வது, மற்றும் மேலடுக்குகளில் உள்ள பிரிவுகளுக்கு இணைப்புகளை ஏற்படுத்துகிறது. கட்டளை வரி சுவிட்ச் - சரிபார்ப்பு பிரிவுகள் பயன்படுத்தி இயல்புநிலை நடத்தை மீட்டமைக்க முடியும்.

--cref

ஒரு குறுக்கு குறிப்பு அட்டவணை வெளியீடு. ஒரு இணைப்பு வரைபட கோப்பு உருவாக்கப்பட்டு இருந்தால், குறுக்கு குறிப்பு அட்டவணையானது வரைபட கோப்பில் அச்சிடப்படும். இல்லையெனில், அது நிலையான வெளியீட்டில் அச்சிடப்படும்.

அட்டவணையின் வடிவமைப்பு வேண்டுமென்றே எளிமையானது, அது தேவைப்பட்டால் எளிதாக ஸ்கிரிப்ட் மூலம் செயல்படுத்தப்படும். சின்னங்கள் அச்சிடப்படுகின்றன, பெயரால் வரிசைப்படுத்தப்படுகின்றன. ஒவ்வொரு குறியீட்டிற்கும் கோப்பு பெயர்களின் பட்டியல் கொடுக்கப்பட்டுள்ளது. சின்னம் வரையறுக்கப்பட்டிருந்தால், பட்டியலிடப்பட்ட முதல் கோப்பில் வரையறையின் இடம். மீதமுள்ள கோப்புகள் குறியீட்டிற்கான குறிப்புகள் உள்ளன.

--no-வரையறுக்க-பொதுவான

இந்த விருப்பம் பொதுவான அடையாளங்களுக்கான முகவரிகளை ஒதுக்குவதைத் தடுக்கிறது. ஸ்கிரிப்ட் கட்டளையான "INHIBIT_COMMON_ALLOCATION" அதே விளைவைக் கொண்டுள்ளது.

வெளியீடு கோப்பு வகையின் தேர்வுகளிலிருந்து பொதுவான சின்னங்களுக்கு முகவரிகளை ஒதுக்க, முடிவெடுக்கும் -no-define-common விருப்பம் அனுமதிக்கிறது; இல்லையெனில் ஒரு அல்லாத இடப்பெயர்ச்சி வெளியீடு வகை படைகள் பொதுவான குறியீடுகள் முகவரிகள் ஒதுக்க. பகிர்வு நூலகத்திலிருந்து குறிப்பிடப்பட்ட பொதுவான சின்னங்களை பிரதான நிரலில் உள்ள முகவரிகள் மட்டுமே ஒதுக்கீடு செய்ய அனுமதிக்கும் --no-define-common ஐப் பயன்படுத்துகிறது. இது பகிரப்பட்ட நூலகத்தில் பயன்படுத்தப்படாத பிரதி இடத்தை அகற்றும், மற்றும் இயக்க குறியீட்டு தெளிவுத்திறனுக்கான பிரத்யேக தேடல் பாதைகளுடன் பல மாறும் தொகுதிகள் இருக்கும்போது தவறான போலிக்கு தீர்வு காண்பதற்கான எந்த குழப்பத்தையும் தடுக்கிறது.

--defsym குறியீடு = வெளிப்பாடு

வெளியீட்டு கோப்பில் ஒரு உலகளாவிய சின்னத்தை உருவாக்கவும், வெளிப்பாடு கொடுக்கும் முழுமையான முகவரியைக் கொண்டிருக்கும். கட்டளை வரியிலுள்ள பல சின்னங்களை வரையறுக்க இந்த விருப்பத்தை பல முறை பயன்படுத்தலாம். இந்த சூழலில் வெளிப்பாட்டிற்கு வரையறுக்கப்பட்டுள்ள ஒரு வரையறுக்கப்பட்ட வடிவம் ஆதரிக்கப்படுகிறது: நீங்கள் ஒரு ஹெக்சேட்ஸிமிக் மாறிலி அல்லது ஏற்கனவே இருக்கும் சின்னத்தின் பெயரை கொடுக்கலாம் அல்லது ஹெச்டேடிசிமிக் மாறிலிகள் அல்லது சின்னங்களைச் சேர்க்க அல்லது கழிப்பதற்கு "+" மற்றும் "-" பயன்படுத்த வேண்டும். உங்களுக்கு விரிவான வெளிப்பாடுகள் தேவைப்பட்டால், இணைப்புக் கட்டுப்பாட்டு மொழியை ஒரு ஸ்கிரிப்டிலிருந்து பயன்படுத்துங்கள். குறிப்பு: சின்னத்திற்கு இடையில் எந்த வெற்று இடமும் இருக்கக்கூடாது, சமிக்ஞை சமம் (`` = = "), மற்றும் வெளிப்பாடு .

--demangle [= பாணி ]

--no-demangle

பிழை செய்திகளை மற்றும் பிற வெளியீட்டில் குறியீட்டு பெயர்களைப் பயன்படுத்துவதை இந்த விருப்பம் கட்டுப்படுத்துகிறது. இணைப்பாளரின் பெயரைக் குறிக்கும் போது, ​​குறியீட்டு பெயர்களை வாசிக்கக்கூடிய பாணியில் இது குறிக்கின்றது: அவை பொருள் கோப்பால் வடிவமைக்கப்பட்டால் அவை அடிக்கோடினை அடிக்கிறது, C ++ வெங்காயமுள்ள பெயர்களை பயனர் படிக்கக்கூடிய பெயர்களாக மாற்றுகிறது. வெவ்வேறு தொகுப்பாளர்கள் வெவ்வேறு மாங்காங் பாணிகளைக் கொண்டுள்ளன. உங்கள் தொகுப்பிக்கு பொருத்தமான demangling பாணியைத் தேர்வுசெய்ய விரும்பினால் விருப்பமான பாணி பாணி வாதம் பயன்படுத்தப்படலாம். சூழல் மாறி COLLECT_NO_DEMANGLE அமைக்கப்பட்டிருந்தால், இணைப்பவர் முன்னிருப்பாக முன்னுரிமையிடுவார். இயல்புநிலைகளை மீறுவதற்கு இந்த விருப்பங்களைப் பயன்படுத்தலாம்.

- டைனமிக்-இணைப்பு கோப்பு

டைனமிக் லிங்கரின் பெயரை அமைக்கவும். மாறும் இணைக்கப்பட்ட ELF செயலாக்கங்களை உருவாக்கும் போது இது அர்த்தமுள்ளதாகும். இயல்புநிலை மாறும் இணைப்பானது பொதுவாக சரியானது; நீங்கள் என்ன செய்கிறீர்கள் என்பதை அறியும் வரை இதை பயன்படுத்த வேண்டாம்.

--embedded-relocs

இந்த விருப்பம் MIPS உட்பொதிக்கப்பட்ட பி.ஐ.ஐ குறியீட்டை இணைக்கும் போது அர்த்தமுள்ளதாக உள்ளது, இது GNU-கம்பைலர் மற்றும் அசெம்பிளர் -meddedded-pic விருப்பத்தால் உருவாக்கப்பட்டது. இது சுட்டிக்காட்டி மதிப்புகளுக்கு திட்டமிடப்பட்ட எந்த தரவையும் இடமாற்றம் செய்ய இயக்கத்தில் பயன்படுத்தப்படக்கூடிய ஒரு அட்டவணையை உருவாக்குவதற்கு இணைப்பை ஏற்படுத்துகிறது. விவரங்களுக்கு testsuite / ld-empic உள்ள குறியீட்டைப் பார்க்கவும்.

--fatal-எச்சரிக்கைகள்

எல்லா எச்சரிக்கைகளையும் பிழைகள் என்று கருதுங்கள் .

--force-EXE-பின்னொட்டு

வெளியீட்டு கோப்பில் ஒரு .exe பின்னொட்டு உள்ளது என்பதை உறுதிப்படுத்தவும்.

வெற்றிகரமாக முழுமையாக இணைக்கப்பட்ட வெளியீட்டு கோப்பில் ஒரு ". Exe " அல்லது " .dll " பின்னொட்டு இல்லை என்றால், இந்த விருப்பம் வெளியீட்டாளர் கோப்பை வெளியீட்டிற்கான அதே பெயரில் ஒரு ".exe" பின்னொட்டுடன் நகலெடுக்க உதவுகிறது. மைக்ரோசாப்ட் விண்டோஸ் புரவலன் மீது unmodified Unix உருவாக்குதல்களைப் பயன்படுத்தும் போது இந்த விருப்பம் பயனுள்ளதாக இருக்கும், ஏனென்றால் Windows இன் சில பதிப்புகள் ஒரு ".exe" பின்னொட்டியில் முடிவடையும் வரையில் ஒரு படத்தை இயக்காது.

--no-GC பிரிவுகள்

--gc பிரிவுகள்

பயன்படுத்தப்படாத உள்ளீட்டு பிரிவுகளின் குப்பை சேகரிப்புகளை இயக்கு. இந்த விருப்பத்தை ஆதரிக்காத இலக்குகளில் இது புறக்கணிக்கப்படுகிறது. இந்த விருப்பம் -ஆர் உடன் பொருந்தாது, அல்லது இது மாறும் இணைப்புடன் பயன்படுத்தப்பட வேண்டும். இயல்புநிலை நடத்தை (இந்த குப்பை சேகரிப்பு செயல்படாதது) கட்டளை வரியில் --no-gc-sections குறிப்பிடுவதன் மூலம் மீட்டமைக்கப்படலாம்.

--உதவி

நிலையான வெளியீடு மற்றும் வெளியேறும் கட்டளை வரி விருப்பங்கள் ஒரு சுருக்கம் அச்சிட.

--target உதவி

நிலையான வெளியீடு மற்றும் வெளியேறும் அனைத்து இலக்கு குறிப்பிட்ட விருப்பங்களை ஒரு சுருக்கம் அச்சிட.

-Map mapfile

கோப்பு வரைபடத்திற்கு ஒரு இணைப்பு வரைபடத்தை அச்சிடவும் . மேலே உள்ள -M விருப்பத்தின் விவரத்தைப் பார்க்கவும்.

--no-விழிப்புநிலைச் நினைவக

ld நினைவகத்தில் உள்ளீடு கோப்புகளின் குறியீட்டு அட்டவணைகள் பற்றுவதன் மூலம் வேகத்திற்கான ஏற்றத்திற்காக ஒருங்கிணைக்கிறது. இந்த விருப்பம் நினைவக பயன்பாட்டிற்காக மேம்படுத்துவதற்கு பதிலாக ld ஐ குறிக்கிறது. ஒரு பெரிய இயங்கக்கூடிய இணைக்கும் போது நினைவக இடத்தை வெளியே ld வெளியேறும் போது இது தேவைப்படலாம்.

--no-வரையறுக்கப்படாத

-z defs

சாதாரணமாக ஒரு குறியீட்டு பகிர்வு நூலகத்தை உருவாக்கும் போது, ​​வரையறுக்கப்படாத குறியீடுகள் அனுமதிக்கப்படும் மற்றும் இயக்க நேர ஏற்றி மூலம் தீர்க்கப்பட வேண்டும். இந்த விருப்பம் போன்ற வரையறுக்கப்படாத குறியீடுகளை அனுமதிக்காது.

--allow-மல்டிபிள் வரையறை

-z muldefs

பொதுவாக ஒரு சின்னம் பல முறை வரையறுக்கப்படும் போது, ​​இணைப்பானது ஒரு பிழையான பிழையை அறிக்கையிடுகிறது. இந்த விருப்பங்கள் பல வரையறைகள் மற்றும் முதல் வரையறையைப் பயன்படுத்த அனுமதிக்கின்றன.

--allow-shlib-வரையறுக்கப்படாத

பகிரப்பட்ட பொருள்களில் வரையறுக்கப்படாத குறியீட்டை --no-undefined அமைக்கப்படும்போதும் அனுமதி. வழக்கமான பொருள்களில் வரையறுக்கப்படாத குறியீடுகள் எப்போதும் பிழைகளைத் தூண்டிவிடும், ஆனால் பகிரப்பட்ட பொருள்களில் வரையறுக்கப்படாத குறியீடுகள் புறக்கணிக்கப்படும். No_undefined செயல்படுத்துவது இயல்பான குறியீட்டில் இயக்கநேர இணைப்பு இணைப்பாளரைத் தூண்டிவிடும் என்ற கருத்தை ஏற்படுத்துகிறது. இருப்பினும் குறைந்தபட்சம் ஒரு அமைப்பு (BeOS) உள்ளது, அங்கு பகிர்வு நூலகங்களில் வரையறுக்கப்படாத குறியீடுகள் சாதாரணமாக தற்போதைய கட்டடக்கலைக்கு மிகவும் பொருத்தமாக இருக்கும் செயல்பாட்டை தேர்ந்தெடுக்க கர்னல் சுமை நேரத்தில் அவற்றை இணைக்கிறது. IE மாறும் ஒரு பொருத்தமான memset செயல்பாடு தேர்ந்தெடுக்கவும். வெளிப்படையாக அது HPPA பகிர்ந்து நூலகங்கள் வரையறுக்கப்படாத குறியீடுகள் வேண்டும் சாதாரண உள்ளது.

--no-வரையறுக்கப்படாத பதிப்பு

பொதுவாக சின்னத்தில் ஒரு வரையறுக்கப்படாத பதிப்பு இருக்கும் போது, ​​இணைப்பு அதை புறக்கணிக்கும். இந்த விருப்பம் வரையறுக்கப்படாத பதிப்புடன் குறியீடுகளை அனுமதிப்பதில்லை மற்றும் அதற்கு பதிலாக ஒரு அபாய பிழை ஏற்படுத்தும்.

--no-எச்சரிக்க-பொருந்தவில்லை

சில காரணங்களால் பொருந்தாத உள்ளீட்டுக் கோப்புகளை ஒன்றிணைக்க முயற்சி செய்தால், வழக்கமாக LD ஒரு பிழை கொடுக்கும், ஏனெனில் அவை வேறுபட்ட செயலிகளுக்கு அல்லது வேறுபட்ட முனைப்புக்களுக்காக தொகுக்கப்பட்டிருக்கலாம். இந்த விருப்பம் இது சாத்தியமான பிழைகள் மெளனமாக அனுமதிக்க வேண்டும் என்று ld சொல்கிறது. இணைப்பு விருப்ப பிழைகள் பொருத்தமற்றவை என்பதை உறுதிப்படுத்தும் சில சிறப்பு நடவடிக்கைகளை நீங்கள் எடுத்துக் கொண்டிருக்கும் சமயத்தில், இந்த விருப்பத்தை கவனமாகப் பயன்படுத்த வேண்டும்.

--no-முழு காப்பகத்தை

அடுத்த காப்பக கோப்புகளை --whole-archive விருப்பத்தின் விளைவை முடக்கு .

--noinhibit-நினைவகத்தில்

இயங்கக்கூடிய வெளியீட்டு கோப்பை இன்னும் பொருந்தக்கூடிய போதெல்லாம் வைத்திருக்கவும். இணைப்பு செயல்முறையின் போது பிழைகள் சந்தித்தால் பொதுவாக, இணைப்பு வெளியீடு கோப்பு உருவாக்காது; எந்த வெளியீட்டையும் எந்தவித சிக்கலையும் சிக்கலாக்கும் போது அது வெளியேறும்.

-nostdlib

கட்டளை வரியில் வெளிப்படையாக குறிப்பிட்ட நூலக அடைவுகளை மட்டும் தேடலாம். இணைப்பு ஸ்கிரிப்ட்களில் குறிப்பிடப்பட்டிருக்கும் நூலக கோப்பகங்கள் (கட்டளை வரியில் குறிப்பிடப்பட்ட இணைப்பு ஸ்கிரிப்டுகள் உட்பட) புறக்கணிக்கப்படுகின்றன.

-oformat வெளியீடு வடிவம்

ld ஒன்றுக்கு மேற்பட்ட வகையான பொருள் கோப்பை ஆதரிக்க கட்டமைக்கப்படலாம். உங்கள் ld இந்த முறையில் கட்டமைக்கப்பட்டிருந்தால், output object கோப்பிற்கான பைனரி வடிவமைப்பை குறிப்பிடுவதற்கு --oformat விருப்பத்தை நீங்கள் பயன்படுத்தலாம். மாற்று பொருள் வடிவமைப்புகளை ஆதரிக்க ld கட்டமைக்கப்பட்டிருந்தாலும் கூட, இதை பொதுவாக குறிப்பிட வேண்டியதில்லை, ஒவ்வொரு கணினியிலும் உள்ள வழக்கமான வெளியீட்டை வடிவமைப்பதற்காக LD கட்டமைக்கப்பட வேண்டும். வெளியீடு வடிவம் ஒரு உரை சரம், BFD நூலகங்கள் ஆதரிக்கும் ஒரு குறிப்பிட்ட வடிவமைப்பின் பெயர். (Objdump -i உடன் கிடைக்கக்கூடிய பைனரி வடிவங்களை நீங்கள் பட்டியலிடலாம்.) "OUTPUT_FORMAT" ஸ்கிரிப்ட் கட்டளையானது வெளியீட்டு வடிவமைப்பை குறிப்பிடலாம், ஆனால் இந்த விருப்பம் அதை மேலெழுகிறது.

-qmagic

லினக்ஸ் இணக்கத்தன்மைக்கு இந்த விருப்பம் புறக்கணிக்கப்படுகிறது.

-Qy

SVR4 பொருந்தக்கூடிய இந்த விருப்பம் புறக்கணிக்கப்படுகிறது.

--relax

இயந்திர சார் சார்ந்த விளைவுகள் கொண்ட ஒரு விருப்பம். இந்த விருப்பம் சில இலக்குகளில் மட்டுமே ஆதரிக்கப்படுகிறது.

சில தளங்களில், --relax விருப்பம் உலகளாவிய உகப்பாக்கம் செய்யப்படுகிறது, இது இணைப்பு உரையாடலைத் தீர்க்கும் போது வெளியீட்டாளர் முகவரியினைத் தீர்க்கும் மற்றும் வெளியீட்டு பொருள் கோப்பில் புதிய வழிமுறைகளை ஒருங்கிணைப்பதன் மூலம் சாத்தியமாகும்.

சில தளங்களில் இந்த இணைப்பு நேரம் உலகளாவிய உகப்பாக்கம் விளைவாக இயங்கக்கூடிய இயலாமையின் குறியீட்டு பிழைதிருத்தம் செய்யலாம். Matsushita MN10200and மற்றும் MN10300 குடும்பத்தின் செயலிகளுக்கு இந்த வழக்கு அறியப்படுகிறது.

இது ஆதரிக்கப்படாத தளங்களில், --relax ஏற்றுக்கொள்ளப்பட்டது, ஆனால் புறக்கணிக்கப்பட்டது.

- ரெட்டை-சின்னங்கள்-கோப்பு கோப்பு பெயர்

கோப்பு கோப்புறையில் பட்டியலிடப்பட்டுள்ள சின்னங்களை மட்டுமே வைத்திருங்கள், மற்ற அனைத்தையும் நிராகரிக்கவும். கோப்புப்பெயர் வெறுமனே ஒரு பிளாட் கோப்பு, வரிக்கு ஒரு சின்ன பெயர். இந்த விருப்பம் ஒரு பெரிய உலகளாவிய குறியீட்டு அட்டவணை படிப்படியாக திரட்டப்பட்ட சூழ்நிலைகளில் (VxWorks போன்றவை) குறிப்பாக பயனுள்ளதாக இருக்கும், ரன்-டைம் நினைவகத்தை பாதுகாக்க.

- குறியிடு-சின்னங்கள்-கோப்பு வரையறுக்கப்படாத குறியீடுகளை நிராகரிக்காது, அல்லது இடங்களுக்கு தேவையான குறியீடுகள்.

கட்டளை வரியில் ஒரே ஒரு முறை - குறிச்சொற்களைக் குறிக்கவும். இது மேலெழுகிறது- s மற்றும் -S .

-ஆதரவு தர்

இயக்க நேர நூலக தேடல் பாதையில் ஒரு அடைவைச் சேர்க்கவும். பகிரப்பட்ட பொருள்களுடன் ELFexecutable ஐ இணைக்கும்போது இது பயன்படுத்தப்படுகிறது. அனைத்து -ஆர்பத் வாதங்கள் இணைக்கப்பட்டன மற்றும் இயக்க நேர இணைப்புக்கு அனுப்பப்படுகின்றன, இது பகிர்வுப் பொருள்களை இயல்பான நேரத்தில் கண்டறிவதற்காக பயன்படுத்துகிறது. இணைப்பு உள்ள வெளிப்படையாக சேர்க்கப்பட்ட பகிரப்பட்ட பொருள்கள் தேவைப்படும் பகிரப்பட்ட பொருள்களை கண்டுபிடிக்கும் போது -ppath விருப்பமும் பயன்படுத்தப்படுகிறது; -rpath-link விருப்பத்தின் விளக்கத்தை பார்க்கவும். ஒரு ELF இயங்கக்கூடிய இணைப்பை இணைக்கும் போது -ppath பயன்படுத்தப்படாவிட்டால், வரையறுக்கப்பட்டிருந்தால், சூழல் மாறியத்தின் "LD_RUN_PATH" உள்ளடக்கங்கள் பயன்படுத்தப்படும்.

-ppath விருப்பம் SunOS இல் பயன்படுத்தப்படலாம். முன்னிருப்பாக, SunOS இல், இணைப்பு வழங்கப்படும் அனைத்து -L விருப்பங்களுடனான இணைப்பானது ஒரு இயங்கு தேடலை உருவாக்குகிறது. ஒரு -ppath விருப்பம் பயன்படுத்தினால், இயக்கநேர தேடல் பாதை பிரத்தியேகமாக -Rpath விருப்பங்களைப் பயன்படுத்தி -L விருப்பங்களை புறக்கணித்துவிடும். Gcc ஐ பயன்படுத்தும் போது இது பயனுள்ளதாக இருக்கும், இது பல -எல் விருப்பங்களை சேர்க்கிறது onNFS கோப்பு முறைமைகளை ஏற்றப்பட்டிருக்கும்.

மற்ற ELF இணைப்பிகளுடன் இணக்கத்தன்மைக்கு, -R விருப்பத்தை ஒரு கோப்பினுடைய பெயரைக் காட்டிலும் ஒரு அடைவு பெயரைப் பயன்படுத்தினால், அது -rpath விருப்பமாக கருதப்படுகிறது.

-rpath-link DIR

ELF அல்லது SunOS ஐ பயன்படுத்தும் போது, ​​ஒரு பகிர்வு நூலகம் மற்றொரு தேவைப்படலாம். ஒரு "ld-shared" இணைப்பு உள்ளீட்டுக் கோப்புகளில் ஒரு பகிர்வு நூலகம் அடங்கும் போது இது நிகழ்கிறது.

இணைப்பற்ற, அல்லாத இடப்பெயர்ச்சி செய்யாத இணைப்பு செய்யும் போது இணைப்பாளரை சந்திக்கும்போது, ​​தானாகவே தேவையான பகிரப்பட்ட நூலகத்தை கண்டுபிடித்து அதை வெளிப்படையாக சேர்க்காவிட்டால், அதை இணைக்க வேண்டும். அத்தகைய ஒரு வழக்கில், -rpath-link விருப்பத்தை தேட முதல் அடைவு அடைவுகளை குறிப்பிடுகிறது. -rpath-link விருப்பம், கோல்களால் பிரிக்கப்பட்ட பெயர்களின் பட்டியலை குறிப்பிடுவதன் மூலம் அல்லது பல முறை தோன்றியதன் மூலம், டைரக்டரி பெயர்களை வரிசைப்படுத்தலாம்.

பகிர்வு நூலகத்தில் கடினமாக தொகுக்கப்பட்டுள்ள தேடல் பாதையை மேலெழுதும்போது இந்த விருப்பம் எச்சரிக்கையுடன் பயன்படுத்தப்பட வேண்டும். இத்தகைய சூழ்நிலையில், இயக்கநேர இணைப்பு செய்தியைச் செய்யாமல் வேறுபட்ட தேடுபொருளைப் பயன்படுத்த முடியாது.

தேவையான பகிர்வு நூலகங்களை கண்டுபிடிப்பதற்கான இணைப்பு பின்வரும் பாதையைப் பயன்படுத்துகிறது.

1.

-rpath-link விருப்பங்களால் குறிப்பிடப்பட்ட எந்த அடைவுகளும்.

2.

-ppath விருப்பங்கள் மூலம் குறிப்பிடப்பட்ட எந்த அடைவுகளும். -ppath மற்றும் -rpath-link க்கு இடையேயான வேறுபாடு, -rpath விருப்பங்களுடனான குறிப்பிட்ட அடைவுகள் இயங்கக்கூடிய மற்றும் செயல்பாட்டில் பயன்படுத்தப்படுகின்றன, அதேசமயம் -rpath-link விருப்பம் இணைப்பு நேரத்தில் மட்டுமே பயனுள்ளதாக இருக்கும். இது சொந்த இணைப்புக்கு மட்டுமே.

3.

ஒரு ELF அமைப்பில், -rpath மற்றும் "rpath-link" விருப்பங்கள் பயன்படுத்தப்படாவிட்டால், சூழல் மாறி "LD_RUN_PATH" இன் உள்ளடக்கங்களை தேடலாம். இது சொந்த இணைப்புக்கு மட்டுமே.

4.

SunOS இல், -rpath விருப்பம் பயன்படுத்தப்படாவிட்டால் -L விருப்பங்களைப் பயன்படுத்தி குறிப்பிடப்பட்டுள்ள எந்த அடைவையும் தேடலாம்.

5.

ஒரு சொந்த இணைப்புக்கு, சூழல் மாறி "LD_LIBRARY_PATH" உள்ளடக்கங்கள்.

6.

ஒரு சொந்த ELF இணைப்புக்காக, பகிர்வு நூலகத்தின் "DT_RUNPATH" அல்லது "DT_RPATH" இல் உள்ள அடைவுகள் அவற்றால் தேவையான நூலகங்களுக்கு தேடப்படுகின்றன. "DT_RUNPATH" உள்ளீடுகள் இருந்தால் "DT_RPATH" உள்ளீடுகள் புறக்கணிக்கப்படும்.

7.

முன்னிருப்பு அடைவுகள், பொதுவாக / lib மற்றும் / usr / lib .

8.

ஒரு ELF கணினியில் ஒரு சொந்த இணைப்புக்கு, கோப்பு /etc/ld.so.conf கோப்பு இருந்தால், கோப்பில் காணப்படும் கோப்பகங்களின் பட்டியல்.

தேவையான பகிர்வு நூலகம் காணப்படவில்லை எனில், இணைப்பாளர் எச்சரிக்கையை வெளியிடுவார், மேலும் இணைப்புடன் தொடரவும்.

-shared

-Bshareable

பகிரப்பட்ட நூலகத்தை உருவாக்கவும். ELF, XCOFF மற்றும் SunOS தளங்களில் மட்டுமே இது தற்போது துணைபுரிகிறது. SunOS இல், -e விருப்பம் பயன்படுத்தப்படாவிட்டால் இணைப்பில் தானாகவே பகிர்வு நூலகம் உருவாக்கப்படும், மேலும் இணைப்பு உள்ள வரையறுக்கப்படாத குறியீடுகள் உள்ளன.

--sort-பொதுவான

பொதுவான விருப்பங்களை சரியான வெளியீடு பிரிவுகளில் வைக்கும் போது, ​​இந்த அளவு விருப்பம் ld க்கு சொல்கிறது. முதலில் ஒரு பைட் சின்னங்களை வாருங்கள், பின்னர் இரண்டு பைட்டுகள், பின்னர் நான்கு பைட்டுகள், பின்னர் எல்லாவற்றையும் எல்லாம். இது சீரமைப்பு கட்டுப்பாடுகள் காரணமாக அடையாளங்களுக்கிடையே இடைவெளியைத் தடுக்கிறது.

- ஸ்லேட்-பை-கோப்பை [ அளவு ]

Ssplit-by-reloc போன்றவை ஆனால் ஒவ்வொரு உள்ளீட்டு கோப்பிற்கும் ஒரு புதிய வெளியீடு பிரிவை உருவாக்குகிறது. ஒரு அளவுக்கு 1 அளவு அளவிலான அளவிலான இயல்புநிலைகள் வழங்கப்படாவிட்டால்.

- ஸ்லீப்-பை-ரிக் [ எண் ]

வெளியீட்டு கோப்பில் கூடுதல் பிரிவுகளை உருவாக்க முயற்சிக்கிறது, இதனால் கோப்பில் எந்த ஒற்றை வெளியீடு பிரிவும் எண்ணிக்கை மீளமைக்கப்படுவதில்லை. COFF பொருள் கோப்பு வடிவத்துடன் சில உண்மையான நேர கர்னல்களில் பதிவிறக்கும் பெரிய இடமாற்றத்தக்க கோப்புகளை உருவாக்கும் போது இது பயனுள்ளதாக இருக்கும்; COFFCannot ஒரு பிரிவில் 65535 இடங்களுக்கு மேல் பிரதிநிதித்துவப்படுத்துவதால். இது தன்னிச்சையான பிரிவுகளுக்கு ஆதரவளிக்காத பொருள் கோப்பு வடிவங்களுடன் பணிபுரியத் தவறுவதை கவனிக்கவும். இணைப்பான் தனிப்பட்ட உள்ளீடு பிரிவை மறுபகிர்வுக்கு பிரிப்பதில்லை, எனவே ஒரு உள்ளீட்டு பிரிவில் எண்ணிக்கைகளை விட அதிகமாக இருந்தால், ஒரு வெளியீடு பிரிவில் பல இடங்களைக் கொண்டிருக்கும். 32768 மதிப்புடன் இயல்புநிலைகளை எண்ணுதல்.

--stats

இணைப்பு நேரம் மற்றும் நினைவக பயன்பாடு போன்ற இணைப்பாளரின் செயல்பாட்டைப் பற்றி புள்ளிவிவரங்களைக் கணக்கிடலாம் மற்றும் காண்பி.

--பாரம்பரிய-வடிவம்

சில இலக்குகளுக்கு, ld இன் வெளியீடு சில வழிகளில் வேறு வழிகளில் வேறுபட்டிருக்கும். அதற்கு பதிலாக பாரம்பரிய வடிவமைப்பை பயன்படுத்த இந்த சுவிட்ச் கோரிக்கைகளை ld .

உதாரணமாக, SunOS, ld குறியீட்டு சரம் அட்டவணையில் பிரதி உள்ளீடுகளை ஒருங்கிணைக்கிறது. இது ஒரு வெளியீட்டு கோப்பின் அளவை 30% க்கும் மேலாக முழு பிழைத்திருத்த தகவலுடன் குறைக்கலாம். துரதிருஷ்டவசமாக, SunOS "dbx" நிரல் விளைவாக நிரலை ("gdb" எந்த பிரச்சனையும் இல்லை) படிக்க முடியாது. - முற்போக்கு-வடிவமைப்பு சுவிட்ச் போலி உள்ளீடுகளை இணைக்க எல்டிக்குத் தெரிவிக்கிறது.

- பகுதி-தொடர sectionname = org

வெளியீட்டுக் கோப்பில் ஒரு பிரிவைக் கண்டால் முழுமையான முகவரியில். கட்டளை வரியில் பல பிரிவுகளை கண்டுபிடிக்க இந்த விருப்பத்தை பல முறை பயன்படுத்தலாம். org ஒரு ஒற்றை ஹெக்டேடிசிமால் முழு இருக்க வேண்டும்; பிற இணைப்பிகளுடன் இணக்கத்திற்காக, பிரதான 0x பொதுவாக ஹாக்ஸேடிசிமல் மதிப்புகளுடன் தொடர்புபடுத்தலாம். குறிப்பு: பிரிவின் பெயர், சம அடையாளம் (`` == ") மற்றும் org ஆகியவற்றுக்கு இடையில் வெள்ளை இடைவெளி இல்லை.

-TBSs org

-Tdata org

-Ttext org

துவக்க முகவரியில் --- முறையே --- "bss", "தரவு" அல்லது வெளியீட்டு கோப்பின் "உரை" பிரிவிற்கான தொடக்க முகவரியாக பயன்படுத்தவும். org ஒரு ஒற்றை ஹெக்டேடிசிமால் முழு இருக்க வேண்டும்; பிற இணைப்பிகளுடன் இணக்கத்திற்காக, பிரதான 0x பொதுவாக ஹாக்ஸேடிசிமல் மதிப்புகளுடன் தொடர்புபடுத்தலாம்.

--dll-நீளமான

--verbose

Ld க்கான பதிப்பு எண்ணைக் காட்டவும் , இணைப்பு இணைப்புகளை ஆதரிக்கவும். உள்ளீட்டுக் கோப்புகளை எந்தத் திறக்க முடியும் என்பதைத் திறக்கவும் முடியாது. இணைப்பாளரால் பயன்படுத்தப்பட்ட இணைப்பு இணைப்பு.

--version-script = version-scriptfile

இணைப்பு ஸ்கிரிப்ட்டின் பெயரை இணைப்பாளரிடம் குறிப்பிடவும். உருவாக்கப்படும் நூலகத்திற்கான பதிப்பு ஹெலர்காரைப் பற்றிய கூடுதல் தகவலைக் குறிப்பிட பகிர்வு நூலகங்களை உருவாக்கும் போது இது பொதுவாக பயன்படுத்தப்படுகிறது. பகிர்வு நூலகங்களை ஆதரிக்கும் எல்எஃப் தளங்களில் இந்த விருப்பம் அர்த்தமுள்ளதாக உள்ளது.

--warn-பொதுவான

ஒரு பொதுவான சின்னம் மற்றொரு பொதுவான சின்னத்துடன் அல்லது குறியீட்டு வரையறையுடன் இணைந்த போது எச்சரிக்கை செய்யவும். யுனிக்ஸ் இணைப்பிகள் இந்த சற்றே துளையிடும் நடைமுறைகளை அனுமதிக்கின்றன, ஆனால் மற்ற இயக்க முறைமைகளில் இணைப்பவர்கள் இல்லை. உலகளாவிய சின்னங்களை இணைப்பதில் இருந்து சாத்தியமான சிக்கல்களைக் கண்டறிய இந்த விருப்பம் உங்களை அனுமதிக்கிறது. துரதிருஷ்டவசமாக, சில சி நூலகங்கள் இந்த நடைமுறையைப் பயன்படுத்துகின்றன, எனவே நூலகங்களில் உள்ள சின்னங்களையும், உங்கள் நிரல்களிலும் சில எச்சரிக்கைகள் கிடைக்கும்.

சி மாதிரிகளால் இங்கே விளக்கப்பட்டுள்ள மூன்று வகையான சர்வதேச குறியீடுகள் உள்ளன:

int i = 1;

வெளியீடு கோப்பின் துவக்கப்பட்ட தரவு பிரிவில் செல்லும் வரையறை.

வெளிப்புற எண்ணாக நான்;

இட ஒதுக்கீடு இல்லாத ஒரு வரையறுக்கப்படாத குறிப்பு. எங்காவது மாறி மாறி ஒரு வரையறை அல்லது பொதுவான அடையாளமாக இருக்க வேண்டும்.

int i;

ஒரு பொதுவான சின்னம். ஒரே மாறி (ஒன்று அல்லது அதற்கு மேற்பட்ட) பொதுவான மாறிகள் இருந்தால், அது வெளியீட்டு கோப்பின் uninitialized தரவு பகுதிக்கு செல்கிறது. ஒற்றை சின்னமாக அதே மாறிக்கு இணைப்பானது பல பொதுவான சின்னங்களை ஒன்றிணைக்கிறது. அவர்கள் வெவ்வேறு அளவுகளில் இருந்தால், அது மிகப்பெரிய அளவை எடுத்துக் கொள்கிறது. இதே மாறிக்கு ஒரு வரையறை இருந்தால், இணைப்பானது ஒரு பொதுவான அடையாளத்தை ஒரு அறிவிப்பாக மாற்றிவிடும்.

--warn- பொதுவான விருப்பம் ஐந்து வகையான எச்சரிக்கைகளை உருவாக்கலாம். ஒவ்வொரு எச்சரிக்கையும் ஒரு ஜோடி வரிகளைக் கொண்டிருக்கிறது: முதல் குறியீடானது முதலில் தோன்றியது, மேலும் இரண்டாவது பெயர் அதே பெயரில் சந்தித்த முந்தைய சின்னத்தை விவரிக்கிறது. ஒன்று அல்லது இரண்டு சின்னங்கள் ஒரு பொதுவான சின்னமாக இருக்கும்.

1.

குறியீட்டிற்கான வரையறையை ஏற்கனவே உள்ளதால், ஒரு பொதுவான சின்னத்தை ஒரு குறிப்புக்கு மாற்றியமைக்கிறது.

(
): எச்சரிக்கை: (
) வரையறுக்கப்பட்டுள்ள ` '' பொதுவானது: எச்சரிக்கை:

2.

ஒரு பொதுவான அறிகுறியை ஒரு குறிப்பிற்கு மாற்றுவது, ஏனெனில் குறியீட்டிற்கான ஒரு பிந்தைய வரையறை காணப்படுகிறது. சின்னங்கள் வேறுபட்ட வரிசையில் சந்தித்தாலன்றி, முந்தைய வழக்கு போலவே இதுவும் ஒன்றாகும்.

(
): எச்சரிக்கை: பொதுவான (
) ஐ ஒத்திவைக்கும் ` '' இன் வரையறை: எச்சரிக்கை: பொது இங்கே

3.

முந்தைய அளவிலான பொதுவான சின்னத்துடன் பொதுவான சின்னத்தை இணைத்தல்.

(
): எச்சரிக்கை: பல > (
): எச்சரிக்கை: முந்தைய பொது இங்கே

4.

முந்தைய பொதுவான பொது சின்னத்துடன் பொதுவான சின்னத்தை இணைத்தல்.

(
): எச்சரிக்கை: பொதுவான (
) மூலம் ` '' பொதுவானது: எச்சரிக்கை: பெரிய பொது இங்கே

5.

முந்தைய சின்ன சின்ன சின்னத்துடன் பொதுவான சின்னத்தை இணைத்தல். சின்னங்கள் வேறுபட்ட வரிசையில் சந்தித்தாலன்றி, முந்தைய வழக்கு போலவே இதுவும் ஒன்றாகும்.

(
): எச்சரிக்கை: சிறிய (
) க்கு பதிலளித்த ` '' பொதுவானது: எச்சரிக்கை: சிறிய பொதுவானது இங்கே

--warn-கன்ஸ்ட்ரக்டர்கள்

எந்த உலகளாவிய கட்டமைப்பாளர்களையும் பயன்படுத்தினால் எச்சரிக்கவும். இது ஒரு சில பொருள் கோப்பு வடிவங்களுக்கு மட்டுமே பயன்படுகிறது. COFF அல்லது ELF போன்ற வடிவங்களுக்கு, இணைப்பாளரால் உலகளாவிய உற்பத்தியாளர்களின் பயன்பாட்டைக் கண்டறிய முடியாது.

--warn-மல்டிபிள் GP

வெளியீட்டு கோப்பில் பல உலக சுட்டிக்காட்டி மதிப்புகள் தேவைப்பட்டால் எச்சரிக்கவும். இது ஆல்பா போன்ற சில செயலிகளுக்கு மட்டுமே அர்த்தம். குறிப்பாக, சில செயலிகள் ஒரு சிறப்பு பிரிவில் பெரிய மதிப்புள்ள மாறிலிகளை வைக்கின்றன. ஒரு சிறப்பு பதிவு (உலகளாவிய சுட்டிக்காட்டி) இந்த பிரிவின் நடுப்பகுதியில் புள்ளிகள், இதனால் மாறிலிகளை ஒரு அடிப்படை-பதிவு உறவினர் முகவரி முறை வழியாக திறமையாக ஏற்றலாம். அடிப்படை-பதிவு உறவினர் பயன்முறையில் உள்ளமைவு நிலையானது மற்றும் ஒப்பீட்டளவில் சிறியதாக இருப்பதால் (எ.கா., 16 பிட்கள்), இது நிலையான தொட்டியின் அதிகபட்ச அளவை கட்டுப்படுத்துகிறது. இதனால், பெரிய நிரல்களில், எல்லா சாத்தியக்கூறுகளையும் உரையாற்றுவதற்கு பல உலக சுட்டிக்காட்டி மதிப்புகளைப் பயன்படுத்த வேண்டியது அவசியம். இந்த விருப்பம் எப்போது நிகழும் போதெல்லாம் இந்த விருப்பம் ஒரு எச்சரிக்கையை ஏற்படுத்தும்.

--warn ஒருமுறை

ஒவ்வொரு வரையறுக்கப்பட்ட குறியீட்டிற்கும் ஒரே ஒரு எச்சரிக்கையை மட்டும் குறிப்பிடுக.

--warn பிரிவு-சீரமை

ஒரு வெளியீடு பிரிவின் முகவரி சீரமைப்பின் காரணமாக மாற்றப்பட்டால் எச்சரிக்கவும். பொதுவாக, சீரமைப்பு உள்ளீடு பிரிவில் அமைக்கப்படும். வெளிப்படையாக குறிப்பிடப்படவில்லை என்றால் முகவரி மாறும்; அதாவது, "SECTIONS" கட்டளை பிரிவுக்கான ஆரம்ப முகவரியை குறிப்பிடவில்லை.

--whole-காப்பகத்தை

--whole-archive விருப்பத்திற்குப் பின் கட்டளை வரியில் குறிப்பிடப்பட்ட ஒவ்வொரு காப்பகத்திற்கும், தேவையான பொருள் கோப்புகள் காப்பகத்தைத் தேடுவதைக் காட்டிலும், இணைப்பு உள்ள காப்பகத்தில் உள்ள ஒவ்வொரு பொருள் கோப்பையும் உள்ளடக்குகிறது. ஒரு காப்பகக் கோப்பை பகிரப்பட்ட நூலகமாக மாற்ற இது பொதுவாக பயன்படுத்தப்படுகிறது, இதன் விளைவாக பகிரப்பட்ட நூலகத்தில் உள்ள ஒவ்வொரு பொருளையும் சேர்க்க வேண்டும். இந்த விருப்பம் ஒன்றுக்கு மேற்பட்ட முறை பயன்படுத்தப்படலாம்.

இந்த விருப்பத்தை gcc இலிருந்து பயன்படுத்தும் போது இரண்டு குறிப்புகள்: முதலில், gcc இந்த விருப்பத்தைப் பற்றி தெரியாது, எனவே நீங்கள் -wl, -whole-archive ஐ பயன்படுத்த வேண்டும். இரண்டாவதாக, காப்பகங்களின் பட்டியல்க்குப் பிறகு -Wl, -no-entire காப்பகத்தை பயன்படுத்த மறக்காதே, ஏனென்றால் gcc உங்கள் இணைப்பிற்கான காப்பகங்களின் சொந்த பட்டியலைச் சேர்க்கும், மேலும் இந்த கொடியை அந்த நபருடன் கூட பாதிக்க விரும்பமாட்டீர்கள்.

- சின்ன சின்னம்

குறியீட்டிற்கான ஒரு மடிப்பு செயல்பாட்டைப் பயன்படுத்தவும். குறியீட்டிற்கு எந்த வரையறுக்கப்படாத குறிப்பும் "__ wrap_symbol" க்கு தீர்க்கப்படும். "__real_symbol" க்கு எந்த வரையறுக்கப்படாத குறிப்பும் சின்னத்திற்கு தீர்க்கப்படும்.

இது ஒரு அமைப்பு செயல்பாட்டிற்கு ஒரு போர்வையை வழங்குவதற்காக பயன்படுத்தப்படலாம். மடிப்பு செயல்பாடு "__wrap_symbol" என்று அழைக்கப்பட வேண்டும். கணினி செயல்பாட்டை அழைக்க விரும்பினால், அது "__ real_symbol" என அழைக்கப்பட வேண்டும்.

இங்கு ஒரு சிறிய உதாரணம்:

வெற்றிடத்தை * __wrap_malloc (int c) {printf ("malloc% ld \ n உடன் அழைக்கப்பட்டது", c); __real_malloc (c); }

நீங்கள் இந்த கோப்பில் மற்ற குறியீட்டை --wrap mallocஇணைத்தால் , "malloc" க்கு அனைத்து அழைப்புகள் அதற்கு பதிலாக "__wrap_malloc" என்ற செயல்பாடு அழைக்கப்படும். "__wrap_malloc" இல் உள்ள "__real_malloc" க்கு அழைப்பு உண்மையான "malloc" சார்பை அழைக்கும்.

நீங்கள் ஒரு "__real_malloc" செயல்பாட்டை வழங்க விரும்பலாம், இதனால் --wrap விருப்பமில்லாமல் உள்ள இணைப்புகள் வெற்றி பெறும். இதை நீங்கள் செய்தால், "__ real_malloc" என்ற வரையறைக்குள் அதே கோப்பில் "__wrap_malloc" என வரையறுக்க வேண்டாம்; நீங்கள் செய்தால், இணைப்பவர் "malloc" க்கு அதை இணைக்க வாய்ப்பளிக்கும் முன் கூட்டியினை அழைக்கலாம்.

--enable-புதிய-dtags

--disable புதிய-dtags

இந்த இணைப்பானது ELF இல் புதிய மாறும் குறிச்சொற்களை உருவாக்கலாம். ஆனால் பழைய ELF அமைப்புகள் அவற்றை புரிந்து கொள்ளாமல் போகலாம். நீங்கள் - --able-new-dtags குறிப்பிடப்பட்டால், தேவைப்படும் மாறும் குறிச்சொற்களை உருவாக்கப்படும். --disable-new-dtags ஐ குறிப்பிடினால், புதிய மாறும் குறிச்சொற்களை உருவாக்காது. முன்னிருப்பாக, புதிய மாறும் குறிச்சொற்கள் உருவாக்கப்படவில்லை. அந்த விருப்பத்தேர்வுகளுக்கு மட்டுமே கிடைக்கும்எல்எஃப் அமைப்புகள்.

I386 PE இணைப்பானது- பகிர்வு விருப்பத்தை ஆதரிக்கிறது, இது வெளியீடு இயல்பான இயங்கக்கூடிய பதிலாக மாறும் இணைக்கப்பட்ட நூலகமாக (DLL) இருக்கும். நீங்கள் இந்த விருப்பத்தை பயன்படுத்தும் போது வெளியீடு "* .dll" என பெயரிட வேண்டும். கூடுதலாக, இணைப்பானது கோப்பகக் கட்டளை வரியில் ஒரு பொருளைக் கோப்பினைப் போல குறிப்பிடப்படக்கூடிய நிலையான "* .def" கோப்புகளை ஆதரிக்கிறது (உண்மையில், இது இணைக்கப்படுவதை உறுதிப்படுத்த, ஒரு சாதாரண பொருள் கோப்பு போல).

அனைத்து இலக்குகளுக்கும் பொதுவான விருப்பங்களுக்கும் கூடுதலாக, i386 PE இணைப்புக்கு துணைபுரிகிறது கூடுதல் கட்டளை வரி விருப்பங்கள் i386 PE இலக்கு. மதிப்புகள் எடுக்கும் விருப்பங்களை ஒரு இடைவெளி அல்லது சமம் அடையாளம் மூலம் அவற்றின் மதிப்புகள் மூலம் பிரிக்கலாம்.

--add-stdcall-என்கிற

கொடுக்கப்பட்டால், ஒரு ஸ்டார்ட்கல் பின்னொட்டு (@ nn ) கொண்ட குறியீடுகள் ஏற்றுமதி செய்யப்படும் மற்றும் பின்னொட்டு துண்டிக்கப்பட்டிருக்கும்.

- பஸ் கோப்பு கோப்பு

DLL களை DLL களை உருவாக்குவதற்கு தேவைப்படும் அனைத்து இடங்களின் அடிப்படை முகவரிகளையும் சேமிக்க ஒரு கோப்பின் பெயராக கோப்பைப் பயன்படுத்தவும்.

--dll

ஒரு வழக்கமான இயங்கக்கூடிய பதிலாக ஒரு DLL ஐ உருவாக்கவும். குறிப்பிட்ட ".def" கோப்பில் நீங்கள் "லைப்ரரி" என்பதைப் பயன்படுத்தலாம் அல்லது குறிப்பிடலாம்.

--enable-stdcall-fixup

--disable-stdcall-fixup

இணைப்பு தீர்க்க முடியாத ஒரு குறியீட்டை கண்டறிந்தால், அது குறியீட்டு பெயரின் (குறியீட்டு பெயரைக் குறிக்கும்) வடிவத்தில் மட்டுமே மாறுபடும் மற்றொரு வரையறுக்கப்பட்ட குறியீட்டைக் கண்டறிவதன் மூலம் "தெளிவான இணைப்பு" செய்ய முயற்சிக்கும். போட்டியில். உதாரணமாக, "_foo @ 12" என்பது "_foo @ 12" function க்கு இணைக்கப்படலாம் அல்லது "_bar @ 16" வரையறுக்கப்படாத குறியீடு "_bar" உடன் இணைக்கப்படலாம். இணைப்பு செய்தால், இது ஒரு எச்சரிக்கையை அச்சிடுகிறது, ஏனெனில் இது பொதுவாக இணைக்கத் தவறியிருக்க வேண்டும், ஆனால் சில நேரங்களில் இறக்குமதி மூன்றாம் தரப்பு வரிகளிலிருந்து உருவாக்கப்படும் நூலகங்கள் பொருந்தக்கூடியதாக இருக்க வேண்டும். --enable-stdcall-fixup ஐ குறிப்பிடுகையில், இந்த அம்சம் முழுமையாக செயல்படுத்தப்பட்டு எச்சரிக்கைகளை அச்சிடவில்லை . --disable-stdcall-fixup- யை நீங்கள் குறிப்பிட்டால், இந்த அம்சம் முடக்கப்பட்டது மற்றும் அத்தகைய பிழைகள் பிழைகள் என்று கருதப்படுகிறது.

--export-அனைத்து சின்னங்கள்

கொடுக்கப்பட்டால், ஒரு DLL ஐ உருவாக்கப் பயன்படும் பொருள்களில் உள்ள அனைத்து பூகோள குறியீடுகளும் DLL மூலம் ஏற்றுமதி செய்யப்படும். இல்லையெனில் ஏற்றுமதி செய்யப்பட்ட சின்னங்கள் இல்லையென்றால் இது முன்னிருப்பு ஆகும் என்பதை நினைவில் கொள்ளவும். DEF கோப்புகளின் மூலம் குறியீடுகளை வெளிப்படையாக ஏற்றுமதி செய்யும்போது அல்லது செயல்பாட்டு பண்புகளின் வழியாக மறைமுகமாக ஏற்றுமதி செய்யப்படும் போது, ​​இந்த விருப்பம் கொடுக்கப்பட்டால், இயல்புநிலை வேறு எதையும் ஏற்றுமதி செய்யாது. குறிப்புகள் "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", மற்றும் "impure_ptr" தானாகவே ஏற்றுமதி செய்யப்படாது என்பதை நினைவில் கொள்க. மேலும், மற்ற DLL களில் இருந்து இறக்குமதி செய்யப்படும் சின்னங்கள் மீண்டும் ஏற்றுமதி செய்யப்படாது, அல்லது "_head_" உடன் ஆரம்பிக்கும் அல்லது "__இம்" உடன் முடிவடையும் போன்ற DLL இன் உள்ளக அமைப்பை குறிப்பிடும் சின்னங்கள் இருக்கும். கூடுதலாக, "libgcc", "libstd ++", "libmingw32", அல்லது "crtX.o" ஆகியவற்றின் சின்னங்கள் ஏற்றுமதி செய்யப்படாது. C ++ DLL களுக்கு உதவுவதற்காக, பெயர்கள் "__rtti_" அல்லது "__builtin_" உடன் தொடங்கும் சின்னங்கள் ஏற்றுமதி செய்யப்படாது. இறுதியாக, ஏற்றுமதி செய்யப்படாத சைக்வின்-தனிப்பட்ட சின்னங்களின் விரிவான பட்டியல் உள்ளது (வெளிப்படையாக, இது சைக்ளின் இலக்குகளுக்கான DLL களை கட்டமைக்கும்போது பொருந்தும்).

இந்த சைக்வினால் ஒதுக்கப்படாதவை: "_cygwin_dll_entry @ 12", "_cygwin_crt0_common @ 8", "__ சைவ வின்_விஸ்ஜிவின்_டெல்_வென்டி @ 12", "_fmode", "_impure_ptr", "cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2", "cygwin_premain2", "cygwin_premain3 ", மற்றும்" சூழல் ".

--exclude-symbols symbol , symbol , ...

தானாக ஏற்றுமதி செய்யப்பட வேண்டிய குறியீடுகளின் பட்டியலைக் குறிப்பிடுகிறது. குறியீட்டு பெயர்கள் காற்புள்ளிகள் அல்லது காலனிகளால் பிரிக்கப்படுகின்றன.

-exclude-libs lib , lib , ...

சின்னங்கள் தானாக ஏற்றுமதி செய்யப்பட வேண்டிய காப்பக நூலகங்களின் பட்டியல் குறிப்பிடுகிறது. நூலகப் பெயர்கள் காற்புள்ளிகள் அல்லது காலனிகளால் பிரிக்கப்படுகின்றன. "Exclude-libs ALL" குறிப்பிடுவதால், தானியங்கு ஏற்றுமதிகளிலிருந்து அனைத்து காப்பக நூலகங்களிலும் உள்ள குறியீடுகளை ஒதுக்குகிறது. இந்த விருப்பத்தை பொருட்படுத்தாமல், ஒரு. DEF கோப்பில் வெளிப்படையாக பட்டியலிடப்பட்ட குறியீடுகள் இன்னமும் ஏற்றுமதி செய்யப்படுகின்றன.

--file-சீரமைப்பு

கோப்பு சீரமைப்பு குறிப்பிடவும். கோப்பில் உள்ள பிரிவுகள் எப்போதும் இந்த எண்ணின் மடங்காக இருக்கும் கோப்பு முடக்கத்தில் தொடங்கும். இந்த இயல்புநிலை 512.

- ஹீப் இருப்பு

- ஹீப் இருப்பு , உறுதி

இந்த நிரலுக்கான குவியலாக பயன்படுத்தப்பட வேண்டிய நினைவகத்தை (மற்றும் விருப்பப்படி செய்ய) நினைவக அளவு குறிப்பிடவும். இயல்புநிலை 1Mb ஒதுக்கப்பட்டது, 4K செய்யப்பட்டது.

- முகப்பு-அடிப்படை மதிப்பு

உங்கள் நிரலின் அல்லது முகவரியின் அடிப்படை முகவரியாக மதிப்பைப் பயன்படுத்தவும். உங்கள் நிரல் அல்லது DLL ஏற்றப்படும் போது இது பயன்படுத்தப்படும் குறைந்த நினைவக இடம் ஆகும். உங்கள் dll களின் செயல்திறனை மாற்றவும் மேம்படுத்தவும் அவசியத்தை குறைக்க, ஒவ்வொன்றும் ஒரு தனித்துவமான அடிப்படை முகவரி வேண்டும் மற்றும் வேறு எந்த dll களும் இல்லை. இயல்பான செயல்களுக்கு 0x400000, மற்றும் dlls க்கான 0x10000000.

--kill-மணிக்கு

கொடுக்கப்பட்டால், அவை ஏற்றுமதி செய்யப்படுவதற்கு முன், ஸ்ட்ட்கால் பின்னொட்டுகள் (@ nn ) சின்னங்கள் இருந்து அகற்றப்படும்.

- பிரதான-பட-பதிப்பு மதிப்பு

`` பட பதிப்பு '' இன் முக்கிய எண்ணிக்கையை அமைக்கிறது. 1 க்கு வரையறுக்கிறது.

- பிரதான- os- பதிப்பு மதிப்பு

"Os version" இன் முக்கிய எண்ணிக்கையை அமைக்கிறது. 4 க்கு இடைவெளிகள்.

- பிரதான-துணை அமைப்பு-பதிப்பு மதிப்பு

"துணை அமைப்பு பதிப்பு" இன் முக்கிய எண்ணிக்கையை அமைக்கிறது. 4 க்கு இடைவெளிகள்.

- நிமிடம்-பட-பதிப்பு மதிப்பு

`` பட பதிப்பின் '' சிறிய எண்ணிக்கையை அமைக்கிறது. 0 க்கு இடைவெளிகள்.

- மைனர்-ஓஸ்-பதிப்பு மதிப்பு

"Os version" இன் சிறிய எண்ணிக்கையை அமைக்கிறது. 0 க்கு இடைவெளிகள்.

- மைனர்-துணை அமைப்பு-பதிப்பு மதிப்பு

"துணை அமைப்பு பதிப்பு" இன் சிறிய எண்ணிக்கையை அமைக்கிறது. 0 க்கு இடைவெளிகள்.

--output-def கோப்பு

இணைப்பு இணைப்பாளரை உருவாக்கும் DLL உடன் தொடர்புடைய ஒரு DEF கோப்பைக் கொண்ட கோப்பு கோப்பை உருவாக்கும். இந்த DEF கோப்பு (இது "* .def" என அழைக்கப்பட வேண்டும்) "dlltool" உடன் ஒரு இறக்குமதி நூலகத்தை உருவாக்க அல்லது தானாகவோ அல்லது மறைமுகமாக ஏற்றுமதி செய்யப்பட்ட குறியீடாக பயன்படுத்தப்படலாம்.

-out-implib கோப்பு

இணைப்பை உருவாக்குபவர் கோப்பு உருவாக்குவார், இது இணைப்பு வழங்குபவர் உருவாக்கும் டிஎல்எல்லுடன் தொடர்புடைய இறக்குமதி லிபி கொண்டிருக்கும். இந்த இறக்குமதி lib (இது "* .dll.a" அல்லது "* .a" என அழைக்கப்பட வேண்டும், இது உருவாக்கப்படும் DLL க்கு எதிராக வாடிக்கையாளர்களை இணைக்க பயன்படுத்தப்படலாம், இந்த நடத்தை ஒரு தனி "dlltool" இறக்குமதி நூலக உருவாக்கம் படிவைத் தவிர்க்க உதவுகிறது.

--enable தானியங்கு அல்லாத படத்தை கார

ஒரு "--image-base" வாதம் பயன்படுத்தி குறிப்பிடப்படவில்லை எனில், DLL களுக்கு படத்தைத் தானாகத் தேர்ந்தெடுக்கவும். ஒவ்வொரு DLL க்கும் தனித்தனி படத்தொகுப்புகளை உருவாக்குவதற்கு ஒரு பெயரிடப்பட்ட ஹேஷ் ஐ பயன்படுத்தி, நினைவகம் மோதல்கள் மற்றும் இடமாற்றங்கள் ஆகியவை நிரல் செயலாக்கத்தை தாமதப்படுத்தலாம்.

--disable தானியங்கு அல்லாத படத்தை கார

தானாகவே ஒரு தனிப்பட்ட படத் தளத்தை உருவாக்காதே. பயனாளர்-குறிப்பிட்ட படத் தளத்தை ("--IMAGE-base") பயன்படுத்தாவிட்டால், மேடையில் இயல்புநிலையைப் பயன்படுத்தவும்.

--dll-search-prefix string

ஒரு இறக்குமதி நூலகம் இல்லாமல் ஒரு டவுன் மாறும் இணைக்கும் போது, ​​" .dll" ஐத் தேட "lib .dll" க்கு முன்னுரிமை. இந்த நடத்தை பல்வேறு "துணை தளங்களில்" உருவாக்கப்படும் DLL களுக்கு இடையில் எளிதாக வேறுபாட்டை அனுமதிக்கிறது: சொந்தம், சைக்வின், யூவின், பி.இ., போன்றவை. எடுத்துக்காட்டாக, சைக்விவ் DLL கள் வழக்கமாக "--dll-search-prefix = cyg" ஐப் பயன்படுத்துகின்றன.

--enable தானியங்கு அல்லாத இறக்குமதி

டிஎல்எல்களில் இருந்து DATA இறக்குமதியை "_symbol" க்கு "__imp__symbol" க்கு அதிநவீன இணைப்பை இணைத்தல் மற்றும் அந்த DATAexports உடன் இறக்குமதி நூலகங்களை உருவாக்கும் போது தேவையான thunking குறியீடுகளை உருவாக்கவும். இது பொதுவாக 'வேலை செய்யும்' --- ஆனால் சில நேரங்களில் நீங்கள் இந்த செய்தியை காணலாம்:

"variable '' 'தானாக இறக்குமதி செய்யப்படாது. தயவுசெய்து ld இன் விவரங்களை அறிய" - இயலுமைப்படுத்த-தானியங்கு இறக்குமதி "ஆவணத்தை படிக்கவும்."

சில (துணை) வெளிப்பாடு கடைசியாக இரண்டு மாறிலிகள் (வின் 32 இறக்குமதி அட்டவணைகள் ஒரே ஒரு அனுமதி) மூலம் கொடுக்கப்பட்ட முகவரிக்கு அணுகும் போது இந்த செய்தி ஏற்படுகிறது. இந்த நிகழ்வில் ஏற்படும் நிகழ்வுகள் ஒரு DLL இலிருந்து இறக்குமதி செய்யப்படும் struct மாறிகளின் உறுப்பினர்களின் துறைகள் மற்றும் ஒரு டிஎல்எல்லிலிருந்து இறக்குமதி செய்யப்படும் ஒரு வரிசை மாறினை ஒரு நிலையான குறியீட்டைப் பயன்படுத்துதல் ஆகியவையும் அடங்கும். ஏதேனும் பலவகை மாறி (வரிசைகள், structs, நீண்ட நீளம் போன்றவை) இந்த பிழை நிலைக்கு தூண்டலாம். இருப்பினும், முறைகேடான ஏற்றுமதி மாறியின் துல்லியமான தரவு வகையைப் பொருட்படுத்தாமல், ld எப்போதுமே அதை கண்டுபிடிக்கும், எச்சரிக்கை வெளியீடு மற்றும் வெளியேறும்.

ஏற்றுமதி மாறி தரவு வகை பொருட்படுத்தாமல், இந்த சிரமம் உரையாற்ற பல வழிகள் உள்ளன:

ஒரு வழி பயன்படுத்த - இயக்கக்கூடிய-இயக்கநேர-போலி-மறுபக்கம் சுவிட்ச். இது இயக்க நேர சூழலுக்காக உங்கள் வாடிக்கையாளர் குறியீட்டில் உள்ள குறிப்புகளை சரிசெய்வதற்கான பணியை விட்டு விடுகிறது, எனவே இந்த முறை இயக்க நேர சூழலில் இந்த அம்சத்தை ஆதரிக்கும்போது மட்டுமே இயங்குகிறது.

இரண்டாவது தீர்வு, 'மாறிலிகள்' ஒரு மாறுபாடு என்று கட்டாயப்படுத்துவதாகும் --- இது, அறியப்படாதது மற்றும் தொகுக்கப்படாத நேரத்தில் ஒரு பார்வை. வரிசைகள், இரண்டு சாத்தியக்கூறுகள் உள்ளன: ஒரு) குறியீட்டாளர் (வரிசை முகவரி) ஒரு மாறி, அல்லது b) 'மாறிலி' குறியீட்டு ஒரு மாறி செய்ய. இதனால்:

வெளிப்புற வகை extern_array []; extern_array [1] -> {கொந்தளிப்பான வகை * t = extern_array; t [1]}

அல்லது

வெளிப்புற வகை extern_array []; extern_array [1] -> {கொடூரமான எண்ணாக t = 1; வெளிப்புற_திரை [t]}

Structs (மற்றும் பல மல்டிவேர்ட் தரவு வகைகள்) க்கு மட்டுமே struct செய்ய (அல்லது நீண்ட நீளம், அல்லது ...) மாறி:

extern struct கள் extern_struct; extern_struct.field -> {மாறக்கூடிய கட்டமைப்பு s * t = & extern_struct; t-> புலம்}

அல்லது

வெளிப்புற நீண்ட நீளமான extern_ll; extern_ll -> {நீண்ட கால நீளமான * local_ll = & extern_ll; * local_ll}

இந்த சிக்கலைக் கையாளும் மூன்றாவது முறை, 'கார்-இறக்குமதி' கைவிடப்படுவதன் குறியீட்டைக் கைவிட்டு, "__ டிக்ஸ்பெக்ஸ் (dllimport)" என்று குறிக்க வேண்டும். எனினும், நடைமுறையில், நீங்கள் ஒரு DLL ஐ உருவாக்குகிறீர்களோ, DLL உடன் இணைக்கக் கூடிய கிளையன்ட் குறியீட்டை உருவாக்குவதா அல்லது ஒரு நிலையான லைப்ரரியை இணைக்கும் / இணைக்கிறதா என்பதைக் குறிப்பிடுவதற்கு தொகுத்தல்-நேரத்தை # வரையறுக்க வேண்டும். 'நேரடி முகவரியினை நேரடியாகத் தீர்க்கும்' சிக்கலைத் தீர்ப்பதற்கான பல்வேறு வழிமுறைகளுக்கு இடையேயான தேர்வு செய்வது, நீங்கள் வழக்கமான உலக பயன்பாட்டை கருத்தில் கொள்ள வேண்டும்:

அசல்:

--foo.h extern int arr []; --foo.c # "foo.h" வெற்றிடத்தை உள்ளடக்கியது (int argc, char ** argv) {printf ("% d \ n", arr [1]); }

தீர்வு 1:

--foo.h extern int arr []; --foo.c # "foo.h" வெற்றிடத்தை முக்கியமாக கொண்டுள்ளது (int argc, char ** argv) {/ * இந்த பணிநிறுத்தம் win32 மற்றும் cygwin ஆகும்; "உகந்ததாக" * / ஆவியாகும் எண்ணாக * parr = arr; வைட்டமின் ( "% ஈ \ N" பாரும் [1]); }

தீர்வு 2:

(FOO_BUILD_DLL) || வரையறுக்கப்பட்ட (FOO_STATIC) வரையறுக்கப்பட்ட (__ CYGWIN__)) & / (! __dclspec (dllexport) )) # FOO_IMPORT __declspec (dllimport) # விதியை # FE_IMPORT # வெளியீடு வெளிப்புறமாக FOO_IMPORT எண்ணாக வரையறுக்கவும் []; --foo.c # "foo.h" வெற்றிடத்தை உள்ளடக்கியது (int argc, char ** argv) {printf ("% d \ n", arr [1]); }

இந்த சிக்கலைத் தவிர்ப்பதற்கு நான்காவது வழி, உங்கள் நூலகத்தை மீளமைக்கும் மாறிகள் (எ.கா. set_foo () மற்றும் get_foo () accessor செயல்பாடுகளை ஒரு தரவு இடைமுகத்தை விட ஒரு செயல்பாட்டு இடைமுகத்தை பயன்படுத்த வேண்டும்.

--disable தானியங்கு அல்லாத இறக்குமதி

DLL களில் இருந்து DATAimports க்கு "_symbol" "__imp__symbol" க்கு sophisticalted இணைப்பு செய்ய முயற்சிக்க வேண்டாம்.

--enable-இயக்க-போலி reloc

உங்கள் குறியீட்டில் - --able-auto-import பிரிவில் விவரிக்கப்பட்டுள்ள வெளிப்பாடுகள் இருந்தால், அதாவது, பூஜ்யம் இல்லாமலில்லாமல் DLL இலிருந்து DATAimports, இந்த சுவிட்ச், ரன்டிங் சூழலுக்கான ஒரு வெக்டரை உருவாக்குகிறது. உங்கள் வாடிக்கையாளர் குறியீட்டில் இது போன்ற தரவு.

--disable-இயக்க-போலி reloc

DLL களில் இருந்து DATA இறக்குமதிகள் இல்லாத பூஜ்யம் இடமாற்றங்களை உருவாக்க வேண்டாம். இது இயல்புநிலை.

--enable-மிகப்-PE-சரிசெய்வதற்கான

தானியங்கு இறக்குமதி குறியாக்கம் thunking தொடர்பான கூடுதல் பிழைத்திருத்த தகவல் காட்டு.

--section-சீரமைப்பு

பிரிவு சீரமைப்பு அமைக்கிறது. நினைவகத்தில் உள்ள பிரிவுகள் எப்போதும் இந்த எண்ணின் பலவற்றுடன் இருக்கும் முகவரிகளில் தொடங்கும். 0x1000 க்கு இயல்புநிலை.

- நிறுத்து ரிசர்வ்

- நிறுத்து ரிசர்வ் , உறுதி

இந்த நிரலுக்கான ஸ்டாக் ஆக பயன்படுத்தப்பட வேண்டிய நினைவக அளவு (மற்றும் விருப்பப்படி) செய்ய குறிப்பிடவும். முன்னிருப்பு 2Mb முன்பதிவு, 4K உறுதி.

- சபை அமைப்பு

- சபை அமைப்பு : முக்கிய

- சபை அமைப்பு : முக்கிய . சிறிய

உங்கள் நிரல் இயக்கப்படும் கீழ் துணை அமைப்பு குறிப்பிடுகிறது. சட்டப்பூர்வ மதிப்புகள் "சொந்த", "சாளரங்கள்", "பணியகம்" மற்றும் "போஸிஸ்". விருப்பத் தொகுப்பையும் நீங்கள் விருப்பப்படி அமைக்கலாம்.

முக்கியமானது: உங்கள் குறிப்பிட்ட கணினியில் ஒரு கட்டளை எவ்வாறு பயன்படுத்தப்படுகிறது என்பதைப் பார்க்க, man கட்டளை ( % man ) ஐப் பயன்படுத்தவும்.