Skip to main content

Све о Линук / Уник наредби: лд

Anonim

НАМЕ

лд - Користећи ЛД, ГНУ линкер

СИНОПСИС

лд Опције објфиле …

ОПИС

лд комбинује број фајлова објеката и архива, премешта своје податке и повезује упуте симбола. Обично је задњи корак у састављању програмалд.

лд прихвата језичке датотеке Линкер Цомманд написане у суперсету АТ & Т'с Линк Едитор Цомманд Лангуаге синтаксе, како би пружила експлицитну и потпуну контролу над процесом повезивања.

Ова ман страница не описује командни језик; погледајлд унос у "инфо" или приручник лд: ГНУ линкер, за све детаље о командном језику и другим аспектима линкера ГНУ.

Ова верзијалд користи БФД библиотеке опште намене за рад на објектним датотекама. Ово омогућујелд да читате, комбинирају и пишу објекте у различитим форматима --- нпр. ЦОФФ или "а.оут". Различити формати могу бити повезани заједно да би произвели било коју доступну врсту датотеке објекта.

Поред своје флексибилности, ГНУ линкер је кориснији од других линкера у пружању дијагностичких информација. Многи линкери напуштају извршење одмах након суочавања са грешком; кад год је могуће,лд наставља да се извршава, омогућавајући вам да идентификујете друге грешке (или, у неким случајевима, да бисте добили излазну датотеку упркос грешкој).

ГНУ линкерлд треба да покрије широк спектар ситуација и да буде што је могуће компатибилније са другим линкерима. Као резултат, имате много избора да контролишете своје понашање.

ОПЦИЈЕ

Линкер подржава мноштво опција командне линије, али у стварној пракси, мало њих се користи у одређеном контексту. На пример, честа употребалд је да повеже стандардне Уник-ове објектне датотеке на стандардни, подржани Уник систем. У таквом систему, да бисте повезали датотеку "хелло.о":

лд -о /либ/црт0.о хелло.о -лц

Ово говорилд да направите датотеку која се зове излаз као резултат повезивања датотеке "/либ/црт0.о" са "хелло.о" и библиотеком "либц.а", која ће доћи из стандардних директоријума за претраживање. (Погледајте дискусију о опција испод.)

Неке опције командне линијелд могу бити специфицирани у било којој тачки у командној линији. Међутим, опције које се односе на датотеке, као што су или, проузрокује читање датотеке у тачки на којој се појављује опција у командној линији, у односу на датотеке објекта и друге опције датотеке. Понављање понуђених опција не-датотеке са другачијим аргументом неће имати никаквог додатног ефекта или преклонити претходне појаве (оне даље од леве стране у командној линији) те опције. Опције које се могу значајно одредити више од једном забележене су у описима испод.

Аргументи који нису опција су објектне датотеке или архиве које треба повезати заједно. Они могу следити, претходити или се мешати са опцијама командне линије, осим што аргумент о објектној датотеци не сме бити постављен између опције и његовог аргумента.

Обично се линкер позива са најмање једном објектном датотеком, али можете да одредите друге облике бинарних улазних датотека користећи, , и скриптни командни језик. Ако не бинарни улазни фајлови су уопште наведени, линкер не производи никакав излаз и издаје порукуНема улазних датотека.

Ако линкер не може препознати формат датотеке објекта, претпоставља да је линкер скрипта. Скрипт који је наведен на овај начин повећава главну скрипту линкера која се користи за везу (или подразумевана скрипта скриптора или она која је одређена коришћењем). Ова могућност дозвољава линкера да се повеже са датотеком која се чини предметом или архивом, али заправо само одређује неке вредности симбола или користи "ИНПУТ" или "ГРОУП" да учита друге објекте. Имајте на уму да спецификовање скрипте на овај начин само повећава главну скрипту линкера; користити опцију да у потпуности замени подразумевани скриптни линкер.

За опције чија су имена једно слово, аргументи опције морају или да прате опционо слово без интервенисања простора, или да буду дати као засебни аргументи одмах након опције која их захтева.

За опције чија су имена вишеструка слова, или једна померачка или два могу претходити називу опције; на пример,-трако-симбол и- траг-симбол су еквивалентне. Напомена - постоји изузетак од овог правила. Опције са више слова које почињу са малим словом "о" могу да пређу само две дирке. Ово је смањење конфузије са опција. Тако на примјер-сомагиц поставља име излазног фајла умагија док--омагиц поставља НМАГИЦ заставу на излазу.

Аргументи опција са више слова морају бити одвојени од имена опције са једнаким знаком или се дају као засебни аргументи одмах након опције која их захтијева. На пример,- траг-симбол фоо и--траце-симбол = фоо су еквивалентне. Јединствене скраћенице имена опција са више слова су прихваћене.

Напомена - ако је линкер индиректно позван, помоћу управљачког програма (нпргцц), онда све опције командне линије линкера требају бити префиксиране од стране-Вл, (или било шта што одговара одређеном возачу превођача) овако:

гцц -Вл, - стартгроуп фоо.о бар.о -Вл, - ендгроуп

Ово је важно, јер у супротном драјвер програма компајлера може тихо испустити опције линкера, што резултира лошим везом.

Овде је табела генеричких командних линија које је прихватио ГНУ линкер:

кључна реч

Ова опција је подржана за ХП / УКС компатибилност. Тхе кључна реч аргумент мора бити један од низоваархива, дељени, илиУобичајено. -архив је функционално еквивалентан-Бастично, а остале две кључне речи су функционално еквивалентне-Бодинамиц. Ова опција се може користити било који број пута.

архитектура

--арцхитецтуре = архитектура

У актуелном издањулд, ова опција је корисна само за фамилију архитектуре Интел 960. У томелд конфигурација, архитектура аргумент идентификује одређену архитектуру у породици 960, омогућавајући неке заштитне мјере и модификацију траке за претраживање архиве-библиотеке.

Будућа издањалд могу подржати сличне функционалности за друге породице архитектуре.

улазни формат

--формат = улазни формат

лд могу бити конфигурисани да подржавају више од једне врсте датотеке објекта. Ако је вашлд је подешен на овај начин, можете га користити опција да наведете бинарни формат за датотеке улазних објеката који прате ову опцију у командној линији. Чак и кадалд је конфигурисан да подржава алтернативне формате објеката, обично вам није потребно да то одредите, као што јелд требали би бити конфигурисани да очекују као стандардни улазни формат најдинобичнији формат на свакој машини. улазни формат је текстовни низ, назив одређеног формата који подржавају БФД библиотеке. (Можете да наведете доступне бинарне формате саобјдумп -и.)

Можда желите да користите ову опцију ако повезујете датотеке са необичним бинарним форматом. Такође можете користити да бисте експлицитно пребацивали формате (приликом повезивања објектних датотека различитих формата), укључивањем улазни формат пре сваке групе објеката у одређеном формату.

Подразумевани формат се узима из варијабле околине "ГНУТАРГЕТ".

Такође можете дефинисати формат уноса из скрипте, користећи команду "ТАРГЕТ";

МРИ-цоммандфиле

--мри-сцрипт = МРИ-цоммандфиле

За компатибилност са линкерима произведеним од стране МРИ,лд прихвата датотеке скрипта написане на алтернативном, ограниченом командном језику, описаном у одељку МРИ Цомпатибле Сцрипт Филес у документацији ГНУ лд. Увести МРИ скриптне датотеке са опцијом; користити опција за покретање линкер скрипти написаних у општој сврсилд скриптни језик. Ако МРИ-цмдфиле не постоји,лдтражи га у директоријима наведеним било којим Опције.

-дц

-дп

Ове три опције су еквивалентне; више форми подржава компатибилност са другим линкерима. Они додјељују простор заједничким симболима чак и ако је специфицирана излазна датотека која се може премјестити (са). Команда скрипта "ФОРЦЕ_ЦОММОН_АЛЛОЦАТИОН" има исти ефекат.

улаз

--ентри = улаз

Користите улаз као експлицитни симбол за почетак извршавања вашег програма, уместо подразумеване улазне тачке. Ако не постоји симбол назван улаз , линкер ће покушати парсе улаз као број, и користите је као улазну адресу (број ће се тумачити у бази 10, можете користити водећи за базу 16 или водећу0 за базу 8).

--екпорт-динамиц

Када креирате динамички повезану извршну датотеку, додајте све симболе динамичној таблици симбола. Динамичка табела симбола је скуп симбола који су видљиви од динамичких објеката у току рада.

Ако не користите ову опцију, динамичка таблица симбола ће обично садржавати само оне симболе на које се односи неки динамички објекат наведен у вези.

Ако користите "длопен" за учитавање динамичког објекта који треба да се односи на симболе које је дефинисао програм, а не неки други динамички објект, вероватно ћете морати користити ову опцију када повезујете сам програм.

Такође можете користити скрипту верзије да контролишете који симболи треба додати у динамичку табелу симбола ако је излазни формат подржава. Погледајте опис- верзија-скрипта у @ реф {ВЕРСИОН}.

-ЕБ

Повежите велике ендијанске објекте. Ово утиче на подразумевани формат излаза.

-ЕЛ

Повежите мале-ендијске објекте. Ово утиче на подразумевани формат излаза.

--оксиларни име

Када креирате ЕЛФ заједнички објекат, подесите интерно поље ДТ_АУКСИЛИАРИ на одређено име. Ово говори динамичком повезивачу да се табела симбола заједничког објекта користи као помоћни филтер на таблици симбола заједничког објекта име .

Ако касније повежете програм против овог објекта филтера, онда, када покренете програм, динамички линкер ће видети поље ДТ_АУКСИЛИАРИ. Ако динамички линкер решава било који симбол из објекта филтера, прво ће проверити да ли постоји дефиниција у заједничком објекту име . Ако постоји, користиће се уместо дефиниције у објекту филтера. Дељени објекат име Не мора постојати. Тако дељени објекат име могу се користити за пружање алтернативне имплементације одређених функција, можда за дебаговање или за специфичне перформансе машине.

Ова опција се може навести више од једном. ДТ_АУКСИЛИАРИ уноси ће бити креирани по редоследу на који се појављују на командној линији.

име

--филтер име

Када креирате ЕЛФ заједнички објекат, подесите интерно поље ДТ_ФИЛТЕР до наведеног имена. Ово говори динамичком повезивачу да се табела симбола дељеног објекта који се креира треба користити као филтер на таблици симбола заједничког објекта име .

Ако касније повежете програм против овог објекта филтра, онда, када покренете програм, динамички линкер ће видети поље ДТ_ФИЛТЕР. Динамички линкер ће решити симболе према таблици симбола објекта филтера као и обично, али ће се уствари везати за дефиниције које се налазе у заједничком објекту име . Стога се објект филтер може користити за одабир подскупа симбола који је дат објектом име .

Неки старији линкери су користили опцију у читавој алатној палети за одређивање формат датотеке објекта за датотеке улазних и излазних објеката. ГНУ линкер користи друге механизме за ову сврху:, --формат, --оформат опције, наредбу "ТАРГЕТ" у линкер скриптама и варијаблу окружења "ГНУТАРГЕТ". ГНУ линкер ће игнорисати опција када не креирате ЕЛФ заједнички објекат.

-фини име

Када креирате ЕЛФ извршни или заједнички објекат, позовите НАМЕ када је извршни или заједнички објекат истоваран, постављањем ДТ_ФИНИ на адресу функције. По дефаулту, линкер користи "_фини" као функцију за позивање.

Игнорисано. Обезбеђена компатибилност са другим алатима.

вредност

--гпсизе = вредност

Подесите максималну величину објеката који ће бити оптимизовани помоћу ГП регистра величине . Ово је значајно само за формате фајлова објеката као што је МИПС ЕЦОФФ који подржава стављање великих и малих објеката у различите секције. Ово се игнорише за друге формате датотека објекта.

име

-сонаме = име

Када креирате ЕЛФ заједнички објекат, подесите интерно ДТ_СОНАМЕ поље на одређено име. Када је извршна датотека повезана са заједничким објектом који има поље ДТ_СОНАМЕ, онда када се извршава извршни програм, динамички линкер ће покушати да учита дељени објекат који је наведен у пољу ДТ_СОНАМЕ умјесто да користи име датотеке дату линкер-у.

Изведите инкременталну везу (исто као опција).

-у томе име

Када креирате ЕЛФ извршни или дељени објекат, позовите НАМЕ када се изврши учитавање извршеног или дељеног објекта, постављањем ДТ_ИНИТ на адресу функције. По дефаулту, линкер користи "_инит" као функцију за позивање.

архива

--либрари = архива

Додај датотеку архиве архива на листу фајлова за повезивање. Ова опција се може користити било који број пута.лд претражити своју путању за појаву "либарцхиве.а" за сваку архива наведено.

На системима који подржавају дијељене библиотеке,лд могу претраживати и библиотеке са додатцима различитим од ".а". Конкретно, на ЕЛФ и СунОС системима,лд претражити директоријум за библиотеку са наставком ".со" пре него што потражите једну са наставком ".а". По договору, екстензија ".со" означава заједничку библиотеку.

Линкер ће претражити архиву само једном, на локацији на којој је наведена на командној линији. Ако архива дефинира симбол који је недефинисан у неком објекту који се појавио пре архиве у командној линији, линкер ће укључити одговарајуће датотеке из архиве. Међутим, недефинисан симбол у објекту који се појављује касније на командној линији неће узроковати линкеру да поново претражује архиву.

Видите-( опција за начин присиљавања линкера за претрагу архива више пута.

Можете истаћи исту архиву више пута у командној линији.

Ова врста претраживања архиве је стандардна за линкере Уника. Међутим, ако користителд онАИКС, имајте на уму да се разликује од понашања АИКС линкера.

сеарцхдир

--либрари-патх = сеарцхдир

Додај пут сеарцхдир на листу путањалд тражи архивске библиотеке илд контролне скрипте. Ову опцију можете користити било који број пута. Директоријуми се претражују по редоследу у којем су наведени у командној линији. Директоријуми који су наведени у командној линији претражују се пре подразумеваних директорија. Све опције се односе на све опције, без обзира на врсту у којој се појављују опције.

Ако сеарцхдир почиње са "=", онда ће "=" бити замењен са сисроот префик , путања која је одређена када је линкер конфигурисан.

Подразумевани скуп претраживаних путања (без навођења са) овиси о томе који режим емулацијелд користи, ау неким случајевима и на који начин је конфигурисан.

Стазе се такође могу навести у скрипти везе помоћу "СЕАРЦХ_ДИР" наредбе. Директоријуми који су наведени на овај начин претражују се на тачки на којој се појављује скрипта линкера у командној линији.

емулација

Емулишите емулација линкер. Можете да наведете доступне емулације са- вербосе илиОпције.

Ако је опција се не користи, емулација се узима из варијабле околине "ЛДЕМУЛАТИОН", ако је то дефинирано.

У супротном, подразумевана емулација зависи од тога како је линкер конфигурисан.

--принт-карта

Штампајте мапу веза на стандардни излаз. Мапа везе садржи информације о вези, укључујући следеће:

*

Гдје су објектне датотеке и симболи мапирани у меморију.

*

Колико су обични симболи додијељени.

*

Сви чланови архиве укључени су у везу, уз помињање симбола који је доводио члан архива.

--магиц

Искључите поравнање делова и означите излаз као "НМАГИЦ" ако је могуће.

--омагиц

Поставите одељак текста и података да би могли читати и писати. Такође, не поравнајте сегмент података и поравнајте везу са дељеним библиотекама. Ако излазни формат подржава магичне бројеве Уник стилова, означите излаз као "ОМАГИЦ".

--но-омагиц

Ова опција негира већину ефеката опција. Он поставља одјељак текста само за читање и присиљује сегмент података да буде поравнато са стране. Напомена - ова опција не омогућава повезивање са дељеним библиотекама. Користите-Бодинамиц за ово.

излаз

--оутпут = излаз

Користите излаз као име за програм који је произвеолд; ако ова опција није наведена, име а.оут се користи подразумевано. Команда скрипта "ОУТПУТ" може такође одредити назив излазне датотеке.

ниво

Ако ниво је нумеричка вредност већа од нулелд оптимизује излаз. Ово би могло трајати знатно дуже и зато вероватно треба омогућити само за последњу бинарну.

- емит-релоцс

Оставите делове и садржај пресељења у потпуно повезане извршне предмете. Анализу линкова за линк и алатке за оптимизацију можда ће бити потребне ове информације како би се извршиле исправне измјене извршних програма. Ово резултира већим извршним програмима.

Ова опција је тренутно подржана само на ЕЛФ платформама.

- смешно

Генеришите релоцатабле оутпут --- и.е., Генеришите излазну датотеку која заузврат служи као улазлд. Ово се често назива делимично повезивање . Као нежељени ефекат, у окружењима која подржавају стандардне магичне бројеве Уника, ова опција такође поставља магични број излазне датотеке на "ОМАГИЦ". Ако ова опција није наведена, направи се апсолутна датотека. Када повезујете Ц ++ програме, ову опцију неће решити референце на конструкторе; да то урадите, користите-Ур.

Када улазна датотека нема исти формат као излазна датотека, делимично повезивање се подржава само ако та улазна датотека не садржи пресељења. Различити излазни формати могу имати даља ограничења; на пример неки формати засновани на "а.оут" не подржавају делимично повезивање са улазним датотекама у другим форматима.

Ова опција чини исто што и.

назив документа

- само-симболи = назив документа

Прочитајте имена симбола и њихове адресе назив документа , али га не премјестите или не укључите у излаз. Ово омогућава вашој излазној датотеци да симболично упути апсолутне локације меморије дефинисане у другим програмима. Ову опцију можете користити више пута.

За компатибилност са другим ЕЛФ линкерима, ако је опцију прати име директоријума, а не име датотеке, третира се као-рпат опција.

-стрип-све

Испустите све информације о симболу из излазне датотеке.

--стрип-дебуг

Изоставити податке симбола дебагера (али не и све симболе) из излазне датотеке.

- траце

Штампајте имена улазних датотека каолд обрађује их.

сцриптфиле

--сцрипт = сцриптфиле

Користите сцриптфиле као линкер скрипта. Овај сценарио замењујелдподразумевана скрипта за линкере (уместо да јој се додају), тако да цоммандфиле мора навести све што је потребно за опис излазне датотеке. Ако сцриптфиле не постоји у тренутном директоријуму, "лд" га тражи у директоријима наведеним у било ком претходном Опције. Вишеструко опције се акумулирају.

симбол

--ундефинед = симбол

Сила симбол да се унесе у излазну датотеку као недефинисан симбол. То може, на пример, покренути повезивање додатних модула са стандардним библиотекама. може се поновити са различитим аргументима опције за унос додатних недефинисаних симбола. Ова опција је еквивалентна наредби "ЕКСТЕРН" линкера скрипта.

-Ур

За све осим програма Ц ++ ова опција је еквивалентна: она генерише релоцабле оутпут --- и.е., излазну датотеку која заузврат служи као улазлд. Када повезујете Ц ++ програме,-Ур Да решити референце за конструкторе, за разлику од њих. Не ради на употреби-Ур на фајлове са којима су сами били повезани-Ур; када је изграђен стол конструктор, не може се додати. Користите-Ур само за последњу делимичну везу, и за остале.

--уникуе = СЕЦТИОН

Ствара одвојени излазни одељак за свако подударање уноса СЕЦТИОН , или ако је опциони џокер СЕЦТИОН аргумент недостаје, за сваки одељак за улаз у сирочад. Одјељак за сирочад је један који се посебно не помиње у линкер скрипти. Ову опцију можете користити више пута у командној линији; Он спречава нормално спајање улазних секција са истим именом, преклапајући задатке излазног одсека у линкер скрипту.

- верзија

Прикажите број верзије залд. Тхе опција такође наводи подржане емулације.

-Икс

-дискард-све

Обришите све локалне симболе.

-ИКС

- лоцалс-лоцалс

Обришите све привремене локалне симболе. За већину мете, то су сви локални симболи чије су имена почињеЛ.

симбол

--траце-симбол = симбол

Одштампајте име сваке повезане датотеке у којој се налази симбол се појављује. Ова опција се може давати било који број пута. На многим системима потребно је направити подвлаке.

Ова опција је корисна када у вашој линији имате недефинисан симбол, али не знате одакле долази референца.

пут

Додати пут на подразумевану путању за претраживање библиотеке. Ова опција постоји за Соларис компатибилност.

кључна реч

Препознате кључне речи су "инитфирст", "интерпосе", "лоадфлтр", "нодефаултлиб", "ноделете", "нодлопен", "нодумп", "нов", "оригин", "цомбрелоц", "ноцомбрелоц" и "ноцопирелоц ". Друге кључне речи су игнорисане за Соларис компатибилност. "инитфирст" означава објекат који се прво иницијализује током извршавања пре било ког другог објекта."интерпосе" означава објекат на којем се његова табела симбола претвара пре свих симбола, али примарна извршна датотека. "лоадфлтр" означава објекат да се његове филте одмах обрађују током извршавања. "нодефаултлиб" обиљежава објекат који ће тражити зависности овог објекта игнорирати све подразумеване путање за претрагу библиотеке. "ноделете" означава да објекат не треба истоваривати у току извршавања. "нодлопен" означава објекат који није доступан за "длопен". "нодумп" означава да објекат не може бити бачен "длдумп". "сада" означава објекат са не-лазним везивањем за извршавање. "Порекло" означава објекат који може садржати $ ОРИГИН. "дефс" онемогућава недефинисане симболе. "мулдефс" дозвољава више дефиниција. "цомбрелоц" комбинује вишеструке релокације и сортира их како би омогућио динамички кеширање за претрагу.

"ноцомбрелоц" онемогућава комбиновање више секција. "ноцопирелоц" онемогућава производњу копија релокса.

-( архиве -)

--старт-гроуп архиве - енд-гроуп

Тхе архиве требало би да буде списак архивских датотека. Могу бити експлицитна имена датотека, илиОпције.

Наведене архиве се претражују више пута све док се не креирају нове недефинисане референце. Обично се архива тражи само једном у редоследу који је наведен у командној линији. Ако је симбол у тој архиви потребан да би се решио недефинисан симбол који се помиње од објекта у архиви која се касније појављује на командној линији, линкер не би могао ријешити ту референцу. Груписањем архива, сви се претражују више пута док се не ријеше све могуће референце.

Коришћење ове опције има значајан трошак перформанси. Најбоље је користити само када постоје неизбежне кружне референце између две или више архива.

- аццепт-ункновн-инпут-арцх

--но-прихватање-непознат-улаз-лук

Објашњава линкеру да прихвати улазне датотеке чија архитектура не може бити препозната. Претпоставка је да корисник зна шта раде и намјерно жели да се повеже у ове непознате улазне датотеке. Ово је подразумевано понашање линкера, пре издања 2.14. Подразумевано понашање из издања 2.14 надаље је одбацивање таквих улазних датотека, па тако- аццепт-ункновн-инпут-арцх додат је опција за враћање старог понашања.

-сигурно кључна реч

Ова опција је игнорисана за СунОС компатибилност.

-Бодинамиц

-Да

-цалл_схаред

Веза против динамичких библиотека. Ово је значајно само на платформама за које су подијељене библиотеке подржане. Ова опција је обично подразумевана на таквим платформама. Различите варијанте ове опције су компатибилне са различитим системима. Ову опцију можете користити више пута у командној линији: она утиче на претраживање библиотеке опције које следе.

-Бгроуп

Поставите заставицу "ДФ_1_ГРОУП" у ставку "ДТ_ФЛАГС_1" у динамичном одељку. Ово доводи до тога да линкер за извршавање поступа са потраживањима у овом објекту и да се његове зависности извршавају само унутар групе.--но-недефинисан је имплицитно. Ова опција је значајна само на ЕЛФ платформама које подржавају дијељене библиотеке.

-Бастично

-Дн

-нон_схаред

-стати

Не повезујте се са дељеним библиотекама. Ово је значајно само на платформама за које су подијељене библиотеке подржане. Различите варијанте ове опције су компатибилне са различитим системима. Ову опцију можете користити више пута у командној линији: она утиче на претраживање библиотеке опције које следе.

-Библиографски

Када креирате заједничку библиотеку, везати референце на глобалне симболе дефиницији унутар дељене библиотеке, ако их има. Обично је могуће да програм повезан са дељеном библиотеком превазиђе дефиницију унутар дељене библиотеке. Ова опција је значајна само на ЕЛФплатформама које подржавају дијељене библиотеке.

- контролне секције

- без провере

Пита линкера не да проверите адресе у одељку након доделе да бисте видели да ли се преклапају. Нормално, линкер ће извршити ову проверу, а ако пронађе било које преклапање, он ће произвести одговарајуће поруке о грешци. Линкер зна и даје додатке за делове у прекривачима. Подразумевано понашање се може вратити помоћу прекидача командне линије- контролне секције.

--цреф

Излази са унакрсном референтном таблицом. Ако се генерише датотека мапе линкова, табела унакрсних референци се одштампа у датотеку мапе. У супротном, штампа се на стандардном излазу.

Формат табеле је намерно једноставан, тако да се може лако обрадити скриптом ако је потребно. Симболи су одштампани, сортирани по имену. За сваки симбол дата је листа имена датотека. Ако је симбол дефинисан, прва наведена датотека је локација дефиниције. Преостале датотеке садрже референце на симбол.

--но-дефине-цоммон

Ова опција спречава доделу адреса заједничким симболима. Команда скрипта "ИНХИБИТ_ЦОММОН_АЛЛОЦАТИОН" има исти ефекат.

Тхе--но-дефине-цоммон опција дозвољава раздвајање одлуке о додељивању адреса заједничким симболима из избора типа излазног фајла; у супротном нон-релоцатабле оутпут оутпут сили додељује адресе Цоммон симболима. Користећи--но-дефине-цоммон дозвољава Обичне симболе које се реферишу из дељене библиотеке да буду додијељене адресе само у главном програму. Ово елиминише неискориштени дупли простор у дељеној библиотеци, а такође спречава било какву конфузију око решавања погрешног дупликата када има много динамичких модула са специјализованим путањама за претрагу за резолуцију симбола.

--дефсим симбол = израз

Креирајте глобални симбол у излазној датотеци, који садржи апсолутну адресу коју даје израз . Ову опцију можете користити толико пута колико је потребно за дефинисање више симбола у командној линији. Подржан је ограничени облик аритметике израз у овом контексту: можете дати хексадецималну константу или име постојећег симбола или користити "+" и "-" да бисте додали или одузели хексадецималне константе или симболе. Ако вам је потребан више елаборираних израза, размислите да користите линкер командни језик из скрипте. Белешка: између њих не треба бити празног простора симбол , знак једнакости (``=''), и израз .

--демангле = стил

- не-демангле

Ове опције контролишу да ли да демангирају имена симбола у порукама о грешци и другом излазу. Када се линкеру рече да демангира, покушава да презентира имена симбола на читљив начин: он прелази водећи подвучице ако их користи формат датотеке објекта, и претвара Ц ++ померена имена симбола у корисничка читљива имена. Различити компајлери имају различите начине манглинга. Опционални арганг аргумент за стил се може користити за одабир одговарајућег стилског размака за ваш компајлер. Линкер ће по дефаулту демангирати осим ако није променљива околинаЦОЛЛЕЦТ_НО_ДЕМАНГЛЕ је постављено. Ове опције се могу користити за превазилажење подразумеване вредности.

- динамички линкер филе

Подесите име динамичког линкера. Ово је значајно само када се генеришу динамички повезане ЕЛФ извршне датотеке. Подразумевани динамички линкер је обично тачан; не користите ово осим ако не знате шта радите.

--ембеддед-релоцс

Ова опција је значајна само када се повезује МИПС уграђени ПИЦ код, генерисан помоћу опције -мембеддед-пиц за ГНУ компајлер и асемблер. То доводи до тога да линкер креира табелу која се може користити у току рада како би се преселио било који податак који је статички иницијализован за вриједности показивача. За детаље погледајте код тестуите / лд-емпиц.

- фатална упозорења

Обришите сва упозорења као грешке.

- форце-еке-суффик

Уверите се да излазна датотека има .еке суфикс.

Ако успешно изграђена потпуно повезана излазна датотека нема ".еке" или ".длл" суфикс, ова опција присиљује линкер да копира излазну датотеку на једно од истог имена помоћу ".еке" суфикса. Ова опција је корисна када користите неизмењене Уник макефиле на хосту Мицрософт Виндовс, пошто неке верзије Виндовса неће покренути слику осим ако се не заврши са ".еке" суфиксом.

--но-гц-секције

--гц-секције

Омогућите сакупљање смећа неискориштених улазних секција. Не занемарује се на циљевима који не подржавају ову опцију. Ова опција није компатибилна са, нити треба да се користи са динамичким повезивањем. Подразумевано понашање (не извршавање ове збирке смећа) може се вратити одређивањем--но-гц-секције на командној линији.

--помоћ

Штампајте сажетак опција командне линије на стандардном излазу и излазу.

- тражи помоћ

Штампајте сажетак свих циљних специфичних опција на стандардном излазу и излазу.

-Мапа мапфиле

Штампајте мапу везе у датотеку мапфиле . Погледајте опис опција, горе.

- не-држи-меморију

лд обично се оптимизује за брзину коришћења меморије тако што се кеширање симбол таблица улазних датотека у меморији. Ова опција говорилд уместо тога оптимизовати се за коришћење меморије, преименујући таблице симбола по потреби. Ово може бити потребно аколд истиче из меморијског простора док повезује велики извршни програм.

--но-недефинисан

-з дефс

Обично када се креира не-симболичка дијељена библиотека, недефинисани симболи су дозвољени и остављени да их реши помоћу извршног лоадер-а. Ове опције онемогућавају такве недефинисане симболе.

- мало-више-дефиниција

-з мулдефс

Обично када је симбол одређен више пута, линкер ће пријавити фаталну грешку. Ове опције омогућавају више дефиниција и користиће се прва дефиниција.

--аллов-схлиб-ундефинед

Дозволи недефинисане симболе у ​​дељеним објектима чак и када је подешено --но-ундефинед. Нето резултат ће бити да ће недефинисани симболи у редовним објектима и даље покренути грешку, али недефинисани симболи у дељеним објектима ће бити игнорисани. Имплементација но_ундефинед подразумева претпоставку да ће се линкер извршавања задавити на недефинисаним симболима. Међутим, постоји најмање један систем (БеОС) у којем су недефинисани симболи у дељеним библиотекама нормални, пошто их језгро обрађује у време учитавања како би одабрали која је функција најприкладнија за тренутну архитектуру. И.Е. динамички бира одговарајућу функцију ммсет-а. Очигледно је такође нормално да библиотеке које деле ХППА имају недефинисане симболе.

--но-ундефинед-верзија

Обично када симбол има недефинисану верзију, линкер ће га игнорисати. Ова опција онемогућава симболе са недефинисаним верзијама и уместо тога ће се издати фатална грешка.

- без упозорења

Нормалнолд дати ће грешку ако покушате да повежете улазне фајлове који су неусаглашени из неког разлога, можда зато што су компајлирани за различите процесоре или за различите ендианије. Ова опција говорилд да би требало тихо дозволити такве могуће грешке. Ова опција треба користити само са пажњом, у случајевима када сте предузели неку посебну акцију која осигурава да су грешке повезивања неадекватне.

- не-цела-архива

Искључите ефекат- цела архива опција за накнадне архивске датотеке.

--ноинхибит-екец

Задржите извршну излазну датотеку кад год је и даље употребљива.Нормално, линкер неће произвести излазну датотеку ако се сусреће са грешкама током процеса везе; она излази без писања излазне датотеке када изда било какву грешку.

-ностдлиб

Само претражујте директоријуме библиотека који су изричито наведени у командној линији. Библиотекарски директоријуми наведени у линкер скриптама (укључујући линкер скрипте наведене у командној линији) се игноришу.

--оформат излазни формат

лд могу бити конфигурисани да подржавају више од једне врсте датотеке објекта. Ако ј