Linux / Unix Command: Id

NGALAN

ld - Gamit ang LD , ang linker sa GNU

SYNOPSIS

ld [mga kapilian ] objfile ...

DESCRIPTION

Ang LD naghiusa sa usa ka gidaghanon sa mga butang ug mga file sa archive, gibalhin ang ilang mga datos ug naghugpong sa mga pakisayran nga simbolo. Kasagaran ang katapusang lakang sa pagtipon sa usa ka programa mao ang pagpadagan sa ld .

Ang ld nagdawat sa mga file sa Linker Command Language nga gisulat sa usa ka superset sa AT & T's Link Editor Command nga Sintomas sa Pinulongan, aron paghatag og klaro ug hingpit nga pagkontrol sa proseso sa pag-link.

Kining panid sa tawo wala maghulagway sa pinulongan nga komand; tan-awa ang ld entry sa "info", o ang manual ld: ang linker sa GNU , alang sa hingpit nga detalye sa command language ug sa ubang aspeto sa GNU linker.

Kini nga bersyon sa ld naggamit sa katibuk-ang katuyoan sa mga librarya sa BFD aron makalihok sa mga file sa butang. Kini nagtugot sa ld sa pagbasa, pagsagol, ug pagsulat sa mga file sa mga butang sa daghang lain-laing mga format --- sama pananglit, COFF o "a.out". Ang nagkalainlain nga mga porma mahimong magkauban nga magkauban aron sa paghimo sa bisan unsang anaa nga matang sa object file.

Gawas sa pagkalalom niini, ang linker sa GNU mas makatabang kay sa ubang mga linker sa paghatag og diagnostic nga impormasyon. Daghang mga linker ang mibiya dayon sa pagpatay human sa pagsugat sa usa ka kasaypanan; kon mahimo, magpadayon ang pagpatuman, aron mahibal-an nimo ang ubang mga kasaypanan (o, sa pipila ka mga kaso, aron makakuha og output file bisan pa sa sayup).

Ang linker sa GNU mao ang gituyo aron pagtak-op sa daghang mga sitwasyon, ug mahimong mas compatible kutob sa mahimo sa ubang mga linker. Ingon usa ka sangputanan, ikaw adunay daghan nga mga pagpili aron makontrol ang iyang kinaiya.

MGA PILION

Ang linker nagsuporta sa daghang mga kapilian sa command-line , apan sa aktwal nga praktis diyutay lang ang gigamit sa bisan unsang partikular nga konteksto. Pananglitan, ang kanunay nga paggamit sa ld mao ang pag-link sa standard Unix object files sa usa ka standard, suportado sa Unix system . Sa ingon nga sistema, pag-link sa file "hello.o":

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

Kini nagsulti sa ld aron makamugna og usa ka file nga gitawag og output nga resulta sa pag-link sa file "/lib/crt0.o" uban sa "hello.o" ug ang librarya "libc.a", nga maggikan sa standard nga mga directory sa pagpangita. (Tan-awa ang diskusyon sa -l nga opsyon sa ubos.)

Pipila sa mga kapilian sa command-line sa ld mahimo nga matino bisan asa sa linya sa komand. Apan, ang mga kapilian nga nagtumong sa mga file, sama sa -l o -T , hinungdan nga mabasa ang file sa punto kung diin ang opsyon makita sa command line, nga may kalabutan sa mga file sa object ug uban pang mga file nga mga kapilian. Ang pagsubli sa dili mga file nga mga kapilian sa usa ka lainlaing argumento wala'y dugang nga epekto, o pagsalikway sa nauna nga mga panghitabo (kadtong dugang pa sa wala sa linya sa command) niana nga kapilian. Ang mga kapilian nga mahimong mapuslanon nga gihatagan og labaw sa usa ka higayon makita sa mga hulagway sa ubos.

Ang mga argumento nga wala'y kapilian mao ang mga butang nga mga file o mga archive nga magkauban. Mahimong mosunod sila, mag-una, o masagol sa mga kapilian sa command-line, gawas nga ang argumento sa object file dili mahimong ibutang tali sa usa ka kapilian ug sa argumento niini.

Kasagaran ang linker ipangutana uban sa labing menos usa ka object file, apan mahimo nimong mahibal-an ang uban pang mga porma sa binary input files gamit ang -l , -R , ug script command language. Kung walay binary input nga mga file sa tanan gitino, ang linker dili makagama og bisan unsang output, ug mag-isyu sa mensahe Wala'y mga input files .

Kung ang linker dili makaila sa format sa usa ka object file, kini maghunahuna nga kini usa ka linker script. Ang usa ka script nga gipatin-aw niini nga paagi nagdugang sa main linker script nga gigamit alang sa link (ang default nga linker script o ang usa nga gipili pinaagi sa paggamit -T ). Ang kini nga bahin nagtugot sa linker sa pag-link batok sa usa ka file nga makita nga usa ka butang o usa ka archive, apan sa pagkatinuod naghubit lamang sa pipila ka simbolo nga mga hiyas, o naggamit sa "INPUT" o "GROUP" sa pag-load sa ubang mga butang. Hinumdumi nga ang paghatag sa usa ka script niining paagiha nagdugang lamang sa main linker script; gamita ang -T nga kapilian sa pagpuli sa default nga linker script sa hingpit.

Alang sa mga opsyon kansang mga ngalan usa ka single nga sulat, ang mga argumento sa kapilian kinahanglan mosunod sa kapilian nga sulat nga wala mag-intervening nga mga whitespace, o ihatag nga mga separadong argumento diha-diha dayon pagsunod sa kapilian nga nagkinahanglan kanila.

Alang sa mga opsyon kansang mga ngalan adunay daghang mga letra, bisan usa ka dash o duha mahimong mag-una sa kapilian ngalan; pananglitan, simbolo sa simbolo ug simbolo sa simbolo parehas. Timan-i - adunay usa ka eksepsiyon niini nga lagda. Ang daghang mga kapilian sa sulat nga nagsugod sa usa ka ubos nga kaso 'o' mahimo lamang nga sundan sa duha ka dash. Kini mao ang pagpakunhod sa kalibog uban sa -o nga kapilian. Busa alang sa pananglitan -omagic nagtakda sa output file nga ngalan sa magic samtang --omagic nagtakda sa NMAGIC flag sa output.

Ang mga pangatarungan sa daghang kapilian nga mga letra kinahanglan nga ibulag gikan sa pangalan nga kapilian pinaagi sa usa ka ilhanan, o mahatag nga magkalahi nga mga argumento sa gilayon pagsunod sa kapilian nga nagkinahanglan niini. Pananglitan, ang simbolong - simbolong foo ug -trace-symbol = foo parehas. Ang mga piniling mga pinamubo sa mga ngalan sa daghang mga kapilian nga mga sulat gidawat.

Hinumdomi - kon ang linker nga gitawag dili direkta, pinaagi sa usa ka compiler driver (eg gcc ) nan ang tanan nga linker command line options kinahanglan prefixed sa -Wl, (o bisan unsa nga angayan alang sa partikular nga driver sa compiler) sama niini:

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

Importante kini, tungod kay kon dili ang programa sa kompyuter sa kompyuter mahimong hilom nga mahipos ang mga kapilian sa pag-link, nga miresulta sa dili maayo nga sumpay.

Ania ang usa ka lamesa sa generic command line switch nga gidawat sa linker sa GNU:

-a keyword

Kini nga opsyon gisuportahan alang sa HP / UX compatibility. Ang argumento sa keyword kinahanglan nga usa sa mga hilo nga gitala , gipakigbahin , o default . -Aluwas nga katumbas sa tanan -Bstatic , ug ang uban pang duha ka mga keyword katugbang nga katumbas sa -Bdynamic . Mahimong gamiton kini nga opsyon bisan unsang gidaghanon sa mga panahon.

- Usa ka arkitektura

- arkitektura = arkitektura

Sa kasamtangan nga pagbuhi sa ld , kini nga kapilian mapuslanon lamang alang sa pamilya sa Intel 960 nga mga arkitektura. Niana nga configuration sa ld , ang argumento sa arkitektura nagpaila sa partikular nga arkitektura sa 960 nga pamilya, nga naghatag sa pipila ka mga panalipod ug pag-usab sa dalan sa pagpangita sa librarya.

Ang umaabot nga pagpagawas sa ld mahimong mosuporta sa susamang kagamitan alang sa ubang mga pamilya sa arkitektura.

-b input-format

--format = input-format

ld mahimong ma-configure aron masuportahan ang labaw sa usa ka matang sa object file. Kung ang imong ld nga gi-configure ning paagiha, mahimo nimong gamiton ang -b nga opsyon aron mahibal-an ang binary format para sa input nga mga file file nga nagsunod niini nga opsyon sa command line. Bisan kon ang ld gi-configure aron pagsuporta sa mga alternatibo nga mga format sa butang, sa kasagaran dili kinahanglan nga isekreto kini, kay ang ld kinahanglan nga i-configure nga magdahum isip default input format ang kasagaran nga format sa matag makina. Ang format sa pag-input usa ka hugpong sa teksto, ang ngalan sa usa ka partikular nga pormat nga gisuportahan sa mga librarya sa BFD. (Mahimo nimong ilista ang mga binary format nga adunay objdump -i .)

Mahimo nimong gamiton kini nga kapilian kon ikaw nag-link sa mga file sa usa ka talagsaon nga binary format. Mahimo usab nimo gamiton ang -b sa pagbalhin sa mga format sa eksaktong paagi (sa higayon nga mag-link sa mga file sa lain-laing mga format), pinaagi sa pag-apil sa -b input-format sa dili pa ang matag grupo sa mga file sa usa ka partikular nga format.

Ang default nga format gikuha gikan sa environment variable "GNUTARGET".

Mahimo usab nimong ipaila ang input format gikan sa usa ka script, gamit ang command "TARGET";

-c MRI-commandfile

--mri-script = MRI-commandfile

Alang sa pagkompirma sa mga linker nga gimugna sa MRI, dawaton ang mga file sa script nga gisulat sa usa ka alternate, restricted command nga pinulongan, nga gihulagway sa seksyon sa MRI Compatible Script Files sa GNU ld dokumentasyon. Ipaila ang mga file sa MRI script uban ang kapilian -c ; gamita ang -T nga opsyon sa pagpadagan nga linker script nga gisulat sa general-purpose ld scripting nga pinulongan. Kung wala ang MRI-cmdfile , kini makita sa mga diretso nga gitino sa bisan unsang mga opsiyon sa L.

-d

-dc

-dp

Kining tulo ka kapilian mga katumbas; daghang mga porma ang gipaluyohan alang sa pagkompirma sa ubang mga linker. Gihatag nila ang luna ngadto sa mga simbolo nga komon bisan kung ang usa ka gitala nga output file gitino (uban sa -r ). Ang script nga nagsugo "FORCE_COMMON_ALLOCATION" adunay susama nga epekto.

-o nga pagsulod

--entry = entry

Gamita ang pagsulod ingon nga usa ka tin-aw nga simbolo sa pagsugod sa pagpatuman sa imong programa, kaysa sa default entry point. Kon walay simbolo nga ginganlan nga entry , ang linker mosulay sa pagsalba sa pagsulod isip usa ka numero, ug gamiton kana ingon nga address address (ang numero ipasabut sa base 10; mahimong mogamit sa usa ka nag-unang 0x alang sa base 16, o usa ka nanguna nga 0 alang sa base 8).

-E

- eksport-dinamiko

Sa diha nga paghimo sa usa ka dinamikong nalambigit nga mga ekseksto, idugang ang tanang mga simbolo sa dinamikong simbolo nga lamesa. Ang dinamikong simbolo sa lamesa mao ang set sa mga simbolo nga makita gikan sa dinamikong mga butang sa oras sa pagdagan.

Kon dili nimo gamiton kini nga kapilian, ang lamesa sa dinamikong simbolo kasagarang maglakip lamang sa mga simbolo nga gihisgotan sa pipila ka dinamikong butang nga gihisgutan sa maong link.

Kung gigamit mo ang "dlopen" aron sa pag-load sa usa ka dinamikong butang nga kinahanglan nga magbalik sa mga simbolo nga gitakda sa programa, kaysa sa uban nga dinamikong butang, nan tingali kinahanglan nga gamiton kini nga kapilian kon mag-link sa programa mismo.

Mahimo usab nimo gamiton ang bersyon script aron makontrol kung unsa nga mga simbolo ang kinahanglan idugang sa dinamikong simbolo nga lamesa kon ang format sa output mosuporta niini. Tan-awa ang paghulagway sa - sa pagsulat-sa script sa @ ref {VERSION}.

-EB

I-link ang mga butang sa big-endian. Kini makaapekto sa format sa output nga default.

-EL

Pagdugtong ang gagmay nga mga butang. Kini makaapekto sa format sa output nga default.

-f

- Mga ngalan sa kalambigitan

Sa diha nga nagmugna sa usa ka butang nga gipakigbahin sa ELF, itakda ang internal nga DT_AUXILIARY nga hawan sa tinudlong ngalan. Kini nagsulti sa dinamikong linker nga ang simbolo nga lamesa sa giambitan nga butang kinahanglan gamiton ingon nga usa ka auxiliary filter sa simbolo nga lamesa sa gipanghatag nga ngalan nga ngalan .

Kon sa kaulahian mag-link ka sa usa ka programa batok niini nga filter nga butang, unya, kung ikaw modagan sa programa, ang dinamikong linker makakita sa DT_AUXILIARY nga field. Kon ang dinamikong linker mosulbad sa bisan unsa nga mga simbolo gikan sa filter nga butang, kini una nga susihon kung adunay kahulugan sa gipanghatag nga ngalan nga ngalan . Kung adunay usa, magamit kini imbis sa kahulugan sa filter nga butang. Ang gipanghatag nga ngalan nga butang dili kinahanglang maglungtad. Busa ang gipanghatag nga ngalan sa ngalan mahimo nga gamiton aron sa paghatag og kapuli nga pagpatuman sa pipila ka mga gimbuhaton, tingali alang sa pag-debug o alang sa makahulugan nga pasundayag sa makina.

Kini nga kapilian mahimong matino labaw pa kay sa makausa. Ang mga DT_AUXILIARY nga mga entries mahimo nga gimugna sa han-ay diin kini makita sa command line.

-F ngalan

- ngalan sa ngalan

Sa diha nga nagmugna sa usa ka butang nga gipakigbahin sa ELF, ibutang ang internal nga DT_FILTER nga bahin sa espesipikong ngalan. Kini nagsulti sa dinamikong linker nga ang simbolo sa lamesa sa giambitan nga butang nga gimugna kinahanglan gamiton ingon nga usa ka filter sa simbolo nga lamesa sa gipanghatag nga ngalan nga ngalan .

Kon sa kaulahian mag-link ka sa usa ka programa batok niini nga filter nga butang, unya, sa diha nga ikaw modagan sa programa, ang dynamic nga linker makakita sa DT_FILTER field. Ang dinamikong linker makahusay sa mga simbolo sumala sa simbolo nga lamesa sa filter nga butang sama sa naandan, apan kini sa tinuud mag-link sa mga kahulugan nga makita sa gipanghatag nga ngalan nga ngalan . Busa ang filter nga butang mahimo nga gamiton aron mapili ang usa ka tipik sa mga simbolo nga gihatag sa ngalan sa butang.

Ang uban nga mga tigulang nga mga tigdugtong naggamit sa -F nga opsyon sa tibuok usa ka hugpong sa himan sa compiling alang sa pag-ila sa format sa object-file alang sa input ug output nga mga file sa object. Ang linker sa GNU naggamit sa ubang mga mekanismo alang niini nga katuyoan: ang -b , -format , --oformat nga mga opsyon, ang "TARGET" nga komand sa linker scripts, ug ang "GNUTARGET" environment variable. Ang linker sa GNU dili manumbaling sa -F nga opsyon kon dili paghimo sa usa ka butang nga gipaambit sa ELF.

-ngga nga ngalan

Sa paghimo sa usa ka ELF executable o mipakigbahin nga butang, tawagi ang NAME sa dihang ang wala'y mahimo o gipakigbahin nga butang wala ibutang, pinaagi sa pagtakda sa DT_FINI sa address sa function. Sa kasagaran, ang linker naggamit sa "_fini" isip function sa pagtawag.

-g

Wala manumbaling. Gihatag alang sa pagkasibo sa ubang mga himan.

-G kabililhon

- gigamit = bili

Ibutang ang maximum nga gidak-on sa mga butang aron ma-optimize gamit ang GP register sa gidak-on . Kini makahuluganon lamang sa mga format sa object file sama sa MIPS ECOFF nga nagsuporta sa pagbutang sa dagko ug gagmay nga mga butang ngadto sa nagkalain-laing mga seksyon. Wala kini gibalewala alang sa laing mga format sa file sa object.

-h ngalan

-soname = ngalan

Sa paghimo sa usa ka butang nga gipakigbahin sa ELF, i-set ang internal nga DT_SONAME field sa tinudlong ngalan. Sa diha nga ang usa ka executable nga nalambigit sa usa ka gipakigbahin nga butang nga adunay usa ka DT_SONAME field, unya kung ang executable gipadagan ang dynamic nga linker mosulay sa pag-load sa gipakigbahin nga butang nga gipili sa DT_SONAME nga field kay sa paggamit sa file name nga gihatag sa linker.

-i

Magpahigayon og usa ka incremental nga link (sama sa opsyon -r ).

-ang ngalan

Sa paghimo sa usa ka ELF executable o share object, pagtawag sa NAME sa dihang ang executable o share nga butang gikarga, pinaagi sa pag-set DT_INIT sa address sa function. Sa kasagaran, ang linker naggamit sa "_init" isip function sa pagtawag.

-l archive

--library = archive

Idugang ang archive file archive sa lista sa mga file aron mag-link. Mahimong gamiton kini nga opsyon bisan unsang gidaghanon sa mga panahon. ld magapangita sa iyang path-list alang sa mga panghitabo sa "libarchive.a" alang sa matag archive nga gitakda.

Sa mga sistema nga nagsuporta sa mga librarya nga gipaambit, mahimo usab nga pangitaon ang mga librarya nga adunay mga ekstra nga lain gawas sa ".a". Sa partikular, sa mga sistema sa ELF ug SunOS, ang ld magapangita og usa ka direktoryo alang sa usa ka librarya nga may ekstensyon nga ".so" sa wala pa pagpangita alang sa usa nga adunay extension nga ".a". Pinaagi sa kombensyon, usa ka extension sa ".so" nagpakita sa usa ka shared library.

Ang linker mag-search sa usa ka archive kausa lamang, sa dapit diin kini gitino sa command line. Kung ang archive nagpatin-aw sa usa ka simbolo nga dili mahulagway sa usa ka butang nga makita sa wala pa ang archive sa command line, ang linker maglakip sa tukmang file (s) gikan sa archive. Hinuon, ang usa ka dili tino nga simbolo sa usa ka butang nga makita sa ulahi sa command line dili maoy hinungdan sa pag-usab sa linker sa pagpangita sa archive.

Tan-awa ang - ( opsyon alang sa usa ka paagi sa pagpugos sa linker sa pagpangita sa mga archive sa daghang mga higayon.

Mahimo nimong ilista ang sama nga archive sa makadaghan sa linya sa komand.

Kini nga matang sa pagpangita sa arsip mao ang sumbanan alang sa mga link sa Unix. Apan, kung ikaw naggamit sa ld onAIX, timan-i nga lahi kini sa kinaiya sa AIX linker.

-L searchdir

--library-path = searchdir

Idugang ang searchdir sa dalan ngadto sa lista sa mga dalan nga magapangita sa mga librarya sa arkibo ug mga script control sa ld . Mahimo nimong gamiton kini nga kapilian sa daghang mga higayon. Ang mga direktoryo gipangita sa han-ay sa diin kini gitino sa command line. Ang mga direktoryo nga gihisgutan sa command line gisiksik sa atubangan sa mga default directory. Ang tanang mga opsiyon sa L magamit sa tanan -l nga mga opsyon, dili igsapayan ang pagkasunod-sunod sa mga opsyon nga makita.

Kon ang searchdir magsugod sa "=", unya ang "=" mapulihan sa sysroot prefix , ang usa ka dalan nga gipasabut sa dihang ang linker isalig .

Ang default nga set sa mga gipangita nga mga agianan (nga walay gitino nga -L ) nagdepende kung asa gigamit ang pagpa- agwanta nga mode ld , ug sa pipila ka mga kaso usab kung giunsa kini nga pagkumpirma.

Ang mga agianan mahimo usab nga matino sa usa ka link script uban sa "SEARCH_DIR" nga sugo. Ang mga direktoryo nga gitino niini nga paagi gipangita sa punto diin ang linker script makita diha sa command line.

-m nga pagsinati

Hupti ang linker nga pangdason. Mahimo nimong i-lista ang mga available nga mga emulation sa mga opsyon nga --verbose o -V .

Kon ang -m nga kapilian wala gigamit, ang pag-angkon gikuha gikan sa "LDEMULATION" environment variable, kung kini gipasabut.

Kay kon dili, ang default nga pagsulay nag-agad sa kon giunsa nga gi-configure ang linker.

-M

-print-map

I-print ang usa ka link nga mapa ngadto sa standard nga output. Ang usa ka link nga mapa naghatag impormasyon bahin sa link, lakip ang mosunod:

*

Kon diin ang mga butang nga mga butang ug mga simbolo gipasulod sa memorya.

*

Giunsa paggahin ang sagad nga mga simbolo.

*

Ang tanan nga mga miyembro sa archive nga gilakip sa maong link, uban ang paghisgot sa simbolo nga maoy hinungdan nga gidala ang miyembro sa archive.

-n

--magic

I-off ang paglaray sa pahina sa mga seksyon, ug markahi ang output nga "NMAGIC" kung mahimo.

-N

--omagic

Ibutang ang mga seksyon sa teksto ug datos nga mahimong mabasa ug masulat. Usab, ayaw panid-pag-align sa mga bahin sa datos, ug pag-disable sa pag-link batok sa mga shared library. Kung ang format sa output nagsuporta sa mga numero sa magic nga Unix, markahi ang output nga "OMAGIC".

- wala'y katakos

Kini nga kapilian nagpanghimakak sa kadaghanan sa mga epekto sa -N nga kapilian. Gipahamtang niini ang seksyon sa teksto nga basahon lamang, ug gipugos ang mga bahin sa datos nga nahisubay sa pahina. Mubo nga sulat - kini nga opsyon dili makahimo sa pag-link batok sa mga shared library. Paggamit -Bdynamic tungod niini.

-o nga output

--output = output

Gamita ang output isip ngalan alang sa programa nga gihimo sa ld ; kung kini nga kapilian wala gitino, ang ngalan nga a.out gigamit piro. Ang script nga nagsugo "OUTPUT" mahimo usab magtino sa output file nga ngalan.

-O nga lebel

Kung ang lebel usa ka numeric values ​​nga labaw pa kay sa zero ang gipaayo sa output. Mahimo nga kini magkinahanglan og mas taas nga panahon ug busa tingali kinahanglan lamang nga magamit alang sa katapusan nga binary.

-q

--emit-relocs

Biyai ang mga seksyon sa relocation ug mga sulod sa hingpit nga nalambigit nga mga exececutables. Ang pag-analisar sa link sa post ug mga himan sa pag-optimize nagkinahanglan niini nga kasayuran aron mahimo ang tukma nga pag-usab sa mga executable. Kini moresulta sa mas dagkong executables.

Kini nga opsyon karon gisuportahan lang sa mga plataporma sa ELF.

-r

- malikawan

Pagbalhin sa relocatable output --- ie, makamugna og usa ka output file nga mahimo usab nga magsilbing input sa ld . Kini kasagaran gitawag nga partial nga pag-link . Ingon nga epekto, sa mga dapit nga nagsuporta sa standard nga mga numero sa magic nga Unix, kini nga kapilian usab nagtakda sa magic number sa output file sa "OMAGIC". Kon kini nga kapilian wala gitakda, usa ka hingpit nga file ang gihimo. Kon nag-link sa C ++ nga mga programa, kini nga kapilian wala masulbad ang mga pakisayran sa mga nagtukod; sa pagbuhat niana, paggamit -Ur .

Sa diha nga ang usa ka input file walay sama nga format sama sa output file, ang partial nga pag-link gisuportahan lamang kung ang input nga file walay bisan unsa nga relocation. Ang nagkalainlain nga mga format sa output mahimo nga dugang nga pagdumili; pananglitan ang pipila ka mga "a.out" -based nga mga format wala mosuporta sa partial nga pag-link sa mga input files sa ubang mga format.

Kini nga kapilian mao ang sama nga butang sama sa -i .

-R filename

--just-symbols = filename

Basaha ang mga ngalan sa simbolo ug ang ilang mga adres gikan sa filename , apan ayaw ibalhin o ibutang kini sa output. Kini nagtugot sa imong output file nga simbolo sa hingpit nga mga lokasyon sa panumduman nga gihubit sa ubang mga programa. Mahimo nimong gamiton kini nga opsyon labaw sa makausa.

Alang sa pagkompirma sa uban pang mga linker sa ELF, kon ang -R nga opsyon gisundan sa usa ka pangalan sa direktoryo, kay sa usa ka pangalan sa file, kini giisip isip opsiyon sa -rpath .

-s

--strip-tanan

Iwag ang tanang impormasyon sa simbolo gikan sa output file.

-S

--strip-debug

Ipadala ang impormasyon sa simbolo sa debugger (apan dili tanang simbolo) gikan sa output file.

-t

--pagsubay

I-print ang mga ngalan sa input files ingon nga ld iproseso kini.

-T scriptfile

--script = scriptfile

Paggamit sa scriptfile ingon nga scripter sa linker. Kini nga script nagpuli sa default nga linker script sa ld (kay sa pagdugang niini), busa ang commandfile kinahanglan magtino sa tanan nga kinahanglanon aron ihulagway ang output file. Kung wala ang scriptfile sa kasamtangan nga direktoryo, ang "ld" mangita niini sa mga diretso nga gitino sa bisan unsang nauna nga mga opsiyon sa L. Ang mga opsyon sa Multiple- T nagatigum.

-u simbolo

--undefined = simbolo

Ang simbolo sa pwersa nga ipasulod sa file sa output isip usa ka dili tino nga simbolo. Ang paghimo niini mahimong, pananglitan, makahimo sa pag-link sa dugang nga mga modulo gikan sa mga standard nga mga librarya. -U mahimo nga sublion uban sa nagkalainlaing mga argumento sa pagpili nga mosulod sa dugang mga simbolo nga dili mahubit. Kini nga kapilian mao ang katumbas sa "EXTERN" linker script command.

-Or

Alang sa bisan unsa gawas sa C ++ nga mga programa, kini nga kapilian mao ang katumbas sa- r : kini makamugna og relocatable output --- ie, usa ka output file nga mahimo usab nga magsilbing input sa ld . Sa dihang nag-link sa mga programa sa C + ,, -Ur nga masulbad ang mga pakisayran sa mga nagtukod, dili sama sa -r . Kini wala magamit aron sa paggamit -Ul sa mga file nga ilang gilangkit sa -Ur ; sa higayon nga ang gitukod nga lamesa gitukod, kini dili madugang. Paggamit -Ul lamang alang sa katapusan nga partial nga sumpay, ug -r alang sa uban.

--unique [= SEKSYON ]

Naghimo og usa ka separadong output nga seksyon alang sa matag pagpares sa seksyon sa pag-input SEKSYON , o kung wala ang opsyonal nga wildcard SEKSYON , alang sa matag seksyon sa input sa orphan. Usa ka seksyon sa mga ilo mao ang usa nga dili espesipikong gihisgutan sa usa ka linker script. Mahimo nimong gamiton kini nga kapilian sa makadaghang panahon diha sa command line; Kini magpugong sa normal nga paghiusa sa mga seksyon sa input nga adunay sama nga ngalan, nga nag-override nga mga assignment nga seksyon sa output sa usa ka linker script.

-v

- pagbalhin

-V

Ipakita ang numero sa bersyon alang sa ld . Gipili usab sa opsiyon sa -V ang gisuportahan nga mga emusyon.

-x

--discard-tanan

Pagtangtang sa tanang lokal nga mga simbolo.

-X

--discard-lokal

Pagtangtang sa tanan nga temporaryo nga lokal nga mga simbolo. Alang sa kadaghanan nga mga target, kini ang tanan nga lokal nga mga simbolo kansang mga ngalan nagsugod sa L.

-ang simbolo

--trace-symbol = simbolo

Isulat ang ngalan sa matag nalambigit nga file diin makita ang simbolo . Kini nga kapilian mahimong mahatag bisan unsang gidaghanon sa mga panahon. Diha sa daghang mga sistema gikinahanglan ang pag-prepend sa underscore.

Kini nga kapilian mapuslanon kung adunay usa ka wala'y kahulugan nga simbolo sa imong sumpay apan wala mahibalo kung diin gikan ang reference.

-Usa ka dalan

Idugang ang agianan padulong sa default search path sa librarya. Adunay kini nga kapilian alang sa pagkomparar sa Solaris.

-z keyword

Ang giila nga mga pulong mao ang "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "karon", "gigikanan", "combreloc", "nocombreloc" ug "nocopyreloc ". Ang uban nga mga keywords wala panumbalinga alang sa pagkasibo sa Solaris. Ang "initfirst" nagtimaan sa butang nga una nga gisugdan sa panahon sa wala pa ang bisan unsang mga butang. Ang "load" nagpasabut nga ang butang nga ang mga simbolo sa lamesa mag-aghat sa atubangan sa tanan nga mga simbolo apan ang nag-una nga mahimo'g eksakto. Ang "loadfltr" nagtimaan sa butang nga ang mga filtees nga giproseso diha-diha dayon sa runtime. bisan unsa nga mga dalan sa pagpangita sa default library. Ang "nodelete" nagtimaan nga ang butang dili kinahanglan nga ibalhin sa runtime. Ang "nodlopen" nagtimaan sa butang nga dili makita sa "dlopen". Ang "nodump" nagtimaan nga ang butang dili mahimong ihulog sa "dldump". "karon" nagtimaan sa tumong sa dili-pagkatapulan nga bili nga runtime. Ang "gigikanan" nagtimaan nga ang butang mahimong adunay $ ORIGIN. Ang "defs" dili mosalikway sa mga simbolo nga dili mahulagway. Ang "muldefs" nagtugot sa daghang mga paghubit. Ang "combreloc" naghiusa sa daghang mga seksyon sa reloc ug nagsumada niini aron mahimo ang posible nga pag-caching sa usa ka dynamic nga simbolo.

Ang "nocombreloc" nagpugong sa daghang reloc nga mga seksyon nga naghiusa. Ang "nocopyreloc" nagpugong sa produksyon sa kopya nga relocs.

- ( archives -)

- archive-group archives --end-group

Ang mga archive kinahanglan nga listahan sa mga file sa archive . Mahimo nga sila mahimong tin-aw nga mga ngalan sa file, o -l nga mga kapilian.

Ang gipasa nga mga archive balik-balik nga pagpangita hangtod nga wala'y bag-ong mga undefined reference nga gimugna. Kasagaran, ang usa ka archive nga gipangita usa ka higayon lamang sumala sa pagkahan-ay niini sa linya sa komand. Kung gikinahanglan ang usa ka simbolo sa maong arsip aron masulbad ang usa ka dili tino nga simbolo nga gihisgotan sa usa ka butang sa usa ka archive nga makita sa ulahi sa command line, ang linker dili makahimo sa pagsulbad sa maong pakisayran. Pinaagi sa paghugpong sa mga archive, kining tanan masulbad kanunay hangtud nga masulbad ang tanang posibleng mga pakisayran.

Ang paggamit niini nga opsyon adunay usa ka mahinungdanon nga gasto sa pasundayag. Labing maayo nga gamiton lamang kini kung adunay mga dili makalibog nga mga pakisayran sa circular tali sa duha o labaw pa nga mga archive.

--dawaton nga dili mailhan-input-arch

- dili-makadawat-dili mailhan-input-arch

Nagsulti ang linker sa pagdawat sa mga input file nga dili mahibal-an ang arkitektura. Ang pangagpas mao nga ang tag-iya nahibal-an kung unsa ang ilang gibuhat ug tinuyo nga gusto nga i-link sa mga wala mahibal-an nga mga file sa input. Kini mao ang default behavior sa linker, sa wala pa ipagawas ang 2.14. Ang default nga kinaiya gikan sa pagpagawas sa 2.14 padayon mao ang pagsalikway sa ingon nga mga input nga mga file, ug busa ang -kon -kon-wala mailhi nga input-arch nga kapilian nadugang aron mapasig-uli ang daan nga kinaiya.

-paggamit og keyword

Wala kini panumbalinga alang sa SunOS compatibility .

-Bdynamic

-y

-maglakip

Pag-link batok sa mga dinamikong mga librarya. Kini makahuloganon lamang sa mga plataporma nga gipaluyohan ang mga librarya nga gipaambit . Kini nga kapilian sa kasagaran mao ang default sa maong mga plataporma. Ang nagkalainlain nga mga variant sa kini nga kapilian mao ang pagkasibo sa nagkalain-laing mga sistema. Mahimo nimong gamiton kini nga kapilian sa makadaghang higayon diha sa command line: kini makaapekto sa librarya nga nangita sa -l nga mga opsyon nga nagsunod niini.

-Bgroup

Ibutang ang "DF_1_GROUP" nga bandila sa "DT_FLAGS_1" nga pagsulod sa dinamikong seksyon. Kini ang hinungdan sa runtime linker aron pagdumala sa mga lookup niini nga butang ug ang mga dependency niini nga ipahigayon lamang sulod sa grupo. - Dili mahulagway ang gipasabot. Kini nga kapilian makahuluganon lamang sa mga plataporma sa ELF nga nagsuporta sa mga librarya nga gipaambit .

-Bstatik

-dn

-non_shared

-static

Ayaw pag-link batok sa mga shared library. Kini makahuloganon lamang sa mga plataporma nga gipaluyohan ang mga librarya nga gipaambit. Ang nagkalainlain nga mga variant sa kini nga kapilian mao ang pagkasibo sa nagkalain-laing mga sistema. Mahimo nimong gamiton kini nga kapilian sa makadaghang higayon diha sa command line: kini makaapekto sa librarya nga nangita sa -l nga mga opsyon nga nagsunod niini.

- Simbolo

Sa paghimo sa usa ka gipakigbahin nga librarya, pagbugkos ang mga pakisayran ngadto sa mga simbolo sa tibuok kalibutan ngadto sa kahulugan sulod sa gipakigbahin nga librarya, kon aduna. Kasagaran, kini posible alang sa usa ka programa nga nalambigit batok sa usa ka gipakigbahin nga librarya aron sa pagsalikway sa kahulugan sulod sa shared library. Kini nga kapilian makahuluganon lamang sa ELFplatforms nga nagsuporta sa mga shared library.

- tsek-seksyon

- walay mga tsek-seksyon

Naghangyo sa linker nga dili usisaon ang mga adres sa seksyon human sila gi-assign sa pagtan-aw kon duna ba'y mga overlap. Kasagaran ang tig-abag nga mopahigayon niini nga tseke, ug kon kini makakaplag sa bisan unsa nga overlaps kini makamugna og angay nga mga mensahe sa sayop. Ang linker nahibal-an, ug naghimo sa mga allowance alang sa mga seksyon sa mga overlay. Ang sayon ​​nga kinaiya mahimong mapasig-uli pinaagi sa paggamit sa command line switch - check-sections .

- cref

I-output ang usa ka lamesa sa cross reference. Kon ang usa ka linker map file nga gigama, ang cross reference nga lamesa i-imprinta sa mapa nga file. Kay kon dili, kini gipatik sa standard output.

Ang format sa lamesa mao ang tinuyo nga simple, aron kini dali maproseso pinaagi sa usa ka script kon gikinahanglan. Ang mga simbolo giimprinta, gisundan sa ngalan. Alang sa matag simbolo, usa ka listahan sa mga ngalan sa file gihatag. Kon ang simbolo gipasabut, ang unang file nga gilista mao ang nahimutangan sa kahulugan. Ang nahabilin nga mga file adunay mga pakisayran sa simbolo.

- dili mahibal-an-komon

Kini nga opsyon nagpugong sa pagtudlo sa mga adres ngadto sa komon nga mga simbolo. Ang script nga nagsugo "INHIBIT_COMMON_ALLOCATION" adunay susama nga epekto.

Ang -no-define-common nga opsyon nagtugot sa paghunong sa desisyon sa pag-assign sa mga address ngadto sa Common simbolo gikan sa pagpili sa type file type; kon dili ang usa ka non-Relocableable nga pwersa sa type sa pag-assign sa mga address ngadto sa Common simbolo. Ang paggamit sa - dili-tukma-komon nga nagtugot sa mga simbolo nga Common references gikan sa usa ka shared library nga ibutang nga mga address lamang sa main nga programa. Kini nagwagtang sa wala gigamit nga duplicate nga luna sa shared library, ug usab nagpugong sa bisan unsang posibleng kalibog sa pagsulbad sa sayup nga duplicate kung adunay daghan nga mga dinamikong modules nga may espesyalista nga mga dalan sa pagpangita alang sa resolusyon sa runtime symbol.

--defsym symbol = ekspresyon

Paghimo sa tibuok kalibutan nga simbolo sa output file, nga adunay hingpit nga address nga gihatag sa ekspresyon . Mahimo nimo gamiton kini nga kapilian sa makadaghan nga higayon kon gikinahanglan aron mahibal-an ang daghang simbolo sa command line. Ang usa ka limitado nga porma sa aritmetika gipaluyohan alang sa ekspresyon niining konteksto: mahimong maghatag ka og usa ka hexadecimal constant o ang ngalan sa usa ka existing simbolo, o gamiton ang "+" ug "-" aron idugang ang mga konstituent o simbolo sa hexadecimal. Kung gikinahanglan nimo ang labi ka makuting mga ekspresyon, hunahunaa ang paggamit sa linker command language gikan sa script. Matikdi: walay puti nga luna taliwala sa simbolo , ang parehas nga ilhanan (`` = ''), ug ekspresyon .

--demangle [= style ]

- dili-demokratiko

Ang kini nga mga kapilian nagapugong kon ipanghit ang mga ngalan sa simbolo sa mga mensahe nga sayup ug uban pang mga output. Sa diha nga ang linker gisugyot nga demangle, kini naningkamot sa pagpresentar sa mga pangalan sa simbolo sa usa ka mabasa nga paagi: kini nagpatik sa mga nag-una nga mga underscore kon kini gigamit sa format sa object file, ug nag-convert sa C ++ mangled nga mga ngalan sa simbolo ngadto sa mga pangalan nga mabasa sa user. Ang nagkalainlaing mga compiler adunay nagkalainlaing estilo sa mangling. Ang opsyonal nga demangling style argument magamit sa pagpili sa usa ka angay nga demangling style alang sa imong compiler. Ang linker magkahiusa sa default kung wala'y gitakda ang environment variable nga COLLECT_NO_DEMANGLE . Kini nga mga kapilian mahimo nga gamiton aron sa pag-override sa default.

--Pagtutudlo-linker file

Ibutang ang ngalan sa dinamikong linker. Kini makahuluganon lamang sa paghimo sa dynamically linked nga mga executable sa ELF. Ang default nga dynamic linker kasagaran husto; ayaw gamita kini gawas kung nahibal-an nimo ang imong ginabuhat.

- pagsulod-relocs

Ang kini nga kapilian makahuluganon lamang kon mag-link sa MIPS nga gisudlan sa PIC code, nga gihimo sa -membedded-pic nga kapilian sa GNU compiler ug assembler. Kini ang hinungdan sa linker sa paghimo sa usa ka lamesa nga mahimo nga gamiton sa runtime sa pagbalhin sa bisan unsa nga data nga statically gisugdan sa pointer values. Tan-awa ang code sa testsuite / ld-empic alang sa mga detalye.

- Makamatay nga mga pasidaan

Tagda ang tanang mga pasidaan isip mga sayop .

--force-exe-suffix

Siguroha nga ang usa ka output file adunay usa ka. Exe nga suffix.

Kon ang usa ka malampuson nga gitukod nga hingpit nga nalambigit nga output file wala sa ".exe" o " .dll " suffix, kini nga kapilian nagpugos sa linker sa pagkopya sa output file ngadto sa usa sa sama nga ngalan nga adunay usa ka ".exe" nga suffix. Kini nga kapilian mapuslanon sa paggamit sa unmodified nga Unix makefiles sa usa ka Microsoft Windows host, tungod kay ang pipila ka mga bersyon sa Windows dili modagan sa usa ka imahe gawas kon kini matapos sa ".exe" suffix.

--no-gc-mga seksyon

--gc-seksyon

Pag-andam sa pagkolekta sa basura sa mga wala magamit nga mga seksyon sa input. Wala kini gibalewala sa mga puntirya nga wala mosuporta niini nga kapilian. Kini nga kapilian wala magkauyon sa -r , ni kini gamiton sa dinamikong pagkonekta. Ang default nga kinaiya (sa dili pagpahigayon niining pagkolekta sa basura ) mahimong mapasig-uli pinaagi sa pagtino sa --no-gc-seksyon sa command line.

- tabang

I-print ang usa ka summary sa command-line options sa standard output ug exit.

- target-help

I-print ang usa ka summary sa tanan nga target nga pihong mga kapilian sa standard output ug exit.

-Map mapfile

I-print ang usa ka link nga mapa ngadto sa file mapfile . Tan-awa ang kahubitan sa -M nga kapilian, sa ibabaw.

- dili magpabilin ang panumdoman

Ang ld kasagarang gipaandar alang sa katulin sa paggamit sa panumduman pinaagi sa pag-caching sa simbolo nga mga lamesa sa input files sa panumduman. Kini nga kapilian nag-ingon ld aron sa pag-optimize alang sa paggamit sa panumduman, pinaagi sa pagbasa sa simbolo nga mga lamesa kung gikinahanglan. Mahimo kini nga gikinahanglan kung ang ld nahaw-as gikan sa memory space samtang nag-link sa usa ka dako nga executable.

- dili-tin-aw

-z defs

Kasagaran sa paghimo sa usa ka dili simbolo nga gipakigbahin nga librarya, ang mga simbolo nga dili gidetalye ang gitugutan ug gibiyaan aron masulbad sa load loader. Kini nga mga kapilian wala motugot sa mga dili tino nga mga simbolo.

- tanan-multiple-kahulugan

-z muldefs

Kasagaran kon ang usa ka simbolo gipatin-aw sa daghang mga higayon, ang linker magreport sa usa ka makamatay nga sayup. Kini nga mga opsyon nagtugot sa daghang mga kahulugan ug ang unang kahulugan nga pagagamiton.

- hinumdom-shlib-wala mahibal-i

Hatagi ang wala'y kahulugan nga mga simbolo sa gipaambit nga mga butang bisan kon wala - wala'y kahulugan nga gitakda. Ang net nga resulta mao nga ang wala'y kahulugan nga mga simbolo sa regular nga mga butang magpahinabo gihapon og usa ka sayop, apan ang mga simbolo nga dili gidetalye sa mga butang nga gipaambit dili ibalewala. Ang pagpatuman sa no_undefined naghimo nga ang assumption nga ang runtime linker mag-uyab sa dili matin-aw nga mga simbolo. Apan adunay labing menos usa ka sistema (BeOS) diin ang wala mahulagway nga mga simbolo diha sa mga librarya nga gipaambit normal kay ang mga kernel nagbutang niini sa panahon sa pag-load aron mapili kung unsang function ang labing angay alang sa kasamtangan nga arkitektura. Ang dinamikong pagpili sa IE usa ka angay nga memset function. Dayag nga normal usab alang sa mga librarya nga gipaambit sa HPPA nga adunay mga simbolo nga dili matino.

--no-undefined-version

Kasagaran sa dihang ang usa ka simbolo adunay usa ka dili tino nga bersyon, ang linker mobaliwala niini. Kini nga opsiyon wala mosalikway sa mga simbolo nga dili masuta nga bersyon ug usa ka makamatay nga kasaypanan ang igahatag.

- wala'y gipasidan-an nga mismatch

Sa kasagaran ang ld maghatag ug kasaypanan kon sulayan nimo ang pag-link sa mga input files nga dili angay alang sa usa ka hinungdan, tingali tungod kay kini gitigom alang sa lainlaing mga processor o alang sa lainlaing mga endiannesses. Kini nga kapilian nagsulti sa ld nga kini kinahanglan nga sa hilom magtugot sa ingon nga posible nga mga sayop. Ang kini nga kapilian kinahanglan gamiton lamang nga may pag-amping, sa mga kaso nga imong gikuha ang pipila ka mga espesyal nga aksyon nga nagsiguro nga ang linker mga sayop dili angay.

- dili-tibuok-archive

Paputli ang epekto sa --whole-archive nga kapilian alang sa sunod nga mga file sa archive.

- Dili pagpugong-pagpatay

Ipabilin ang executable output file sa matag higayon nga kini magamit gihapon. Kasagaran, ang linker dili makagama og usa ka output file kung kini makasugat og mga sayop sa proseso sa pag-link; kini mogawas nga walay pagsulat sa usa ka output file sa diha nga kini nga isyu sa bisan unsa nga bisan unsa nga sayop.

-nostdlib

Pag-search lamang sa mga direktoryo sa library nga tin-aw nga gisulti sa command line. Ang mga directory sa Library nga gitudlo sa mga script sa linker (lakip ang mga script sa linker nga gitino sa command line) wala panumbalinga.

--oformat output-format

ld mahimong ma-configure aron masuportahan ang labaw sa usa ka matang sa object file. Kung ang imong ld nga gi-configure ning paagiha, mahimo nimo gamiton ang opsyon sa --oformat aron mahibal-an ang binary format alang sa output object file. Bisan kon ang ld gi-configure aron pagsuporta sa mga alternatibo nga mga format nga butang, wala ka kinahanglana nga isulat kini, sama nga ang ld kinahanglan nga i-configure aron mahimo isip default output format ang kasagaran nga format sa matag makina. Ang format sa output usa ka string sa teksto, ang ngalan sa usa ka porma nga gipaluyohan sa mga librarya sa BFD. (Mahimo nimong ilista ang mga binary format nga adunay objdump -i .) Ang script nga nagsugo "OUTPUT_FORMAT" mahimong maghisgut usab sa format sa output, apan kini nga kapilian nag-override niini.

-qmagic

Kini nga kapilian wala panumbalinga alang sa kompyuter sa Linux.

-Ay

Wala kini gibalewala sa SVR4 compatibility.

--relax

Usa ka kapilian nga mga epekto sa makina nga makina. Kini nga opsyon gisuportahan lamang sa pipila ka mga target.

Diha sa pipila ka mga plataporma, ang opsyon sa -relax naghimo sa global nga mga pag-uswag nga mahimong posible kon ang linker mosulbad sa pagsulbad sa programa, sama sa paglingaw sa mga mode sa address ug pag-synthesize sa bag-ong mga instruksyon sa output object file.

Sa pipila ka mga plataporma kini nga oras sa pag-link sa global nga mga pag-uswag mahimong maghimo sa simbolikong pag-debug sa resulta nga mahimo nga dili mahimo. Nahibal-an kini nga mao ang kaso sa Matsushita MN10200 ug MN10300 nga pamilya sa mga processor.

Sa mga plataporma diin kini wala gisuportahan, - ang grelax gidawat, apan wala panumbalinga.

--retain-symbols-file filename

Ipabilin lamang ang mga simbolo nga gilista sa file filename , nga naglikay sa tanan. Ang filename usa lamang ka patag nga file, nga adunay usa ka simbolo nga ngalan matag linya. Kini nga opsyon ilabi na nga mapuslanon diha sa mga dapit (sama sa VxWorks) diin ang usa ka dako nga simbolo sa kalibutan nga simbolo hinay-hinay nga natigum, aron makonserba ang run-time nga panumduman.

--Ang mga simbolo-ang mga simbolo-file wala magsalikway sa mga simbolo nga dili mahulagway, o mga simbolo nga gikinahanglan alang sa mga relokasyon.

Mahimo mo lamang isulti ang mga --retain-symbols-file kausa sa command line. Gipildi kini- ug -S .

-rpath dir

Idugang ang usa ka directory sa runtime search search path. Kini gigamit sa dihang mag-link sa usa ka ELFexecutable uban sa mga gipaambit nga mga butang. Ang tanan -rpath nga argumento gihiusa ug gipasa ngadto sa runtime linker, nga naggamit niini aron sa pagpangita sa mga butang nga gipaambit sa runtime. Ang opsiyon sa -rpath gigamit usab sa pagpangita sa mga gipanghatag nga mga butang nga kinahanglanon pinaagi sa mga gipakigbahin nga mga butang nga tin-aw nga gilakip sa sumpay; tan-awa ang paghulagway sa -rpath-link nga kapilian. Kung ang -rpath wala gigamit sa pag-link sa usa ka executable sa ELF, ang mga sulod sa environment variable "LD_RUN_PATH" magamit kung kini gipasabut.

Ang opsyon sa -rpath mahimo usab nga gamiton sa Sunos. Sa default, sa SunOS, ang linker moporma sa usa ka search patch sa runtime gikan sa tanang mga opsiyon sa L nga gihatag niini. Kung ang usa ka -rpath nga kapilian gigamit, ang runtime search nga dalan himoon lamang gamit ang mga opsyon sa -rpath , nga wala magtagad sa mga opsiyon sa -L . Mahimo kining magamit sa paggamit sa gcc, nga nagdugang sa daghang mga opsiyon nga mahimo nga NFS mount filesystems.

Alang sa pagkompirma sa uban pang mga linker sa ELF, kon ang -R nga opsyon gisundan sa usa ka pangalan sa direktoryo, kay sa usa ka pangalan sa file, kini giisip isip opsiyon sa -rpath .

-rpath-link DIR

Sa dihang gamiton ang ELF o SunOS, usa ka shared library magkinahanglan og lain. Mahitabo kini kung ang link nga "ld -shared" naglakip sa usa ka shared library isip usa sa mga input files.

Sa dihang ang linker makasinati sa ingon nga pagsalig sa diha nga ang pagbuhat sa usa ka dili-gipakigbahin, dili relocatable nga link, kini awtomatikong mosulay sa pagpangita sa gikinahanglan nga gipakigbahin nga librarya ug ilakip kini sa link, kung kini wala gilakip sa dayag. Sa maong kaso, ang opsyon sa -rpath-link nagtino sa unang hugpong sa mga direktoryo aron sa pagpangita. Ang opsiyon sa -rpath-link mahimong magtino sa pagkasunod-sunod sa mga pangalan sa direktoryo pinaagi sa pagtino sa usa ka lista sa mga pangalan nga gibulag sa mga colon, o pinaagi sa pagpakita sa daghang mga higayon.

Ang kini nga kapilian kinahanglan gamiton uban ang pag-amping ingon nga kini nag-override sa dalan sa pagpangita nga mahimong lisud nga gihiusa ngadto sa usa ka shared library. Sa ingon nga kaso posible nga gamiton ang dili tinuyo nga usa ka lain nga dalan sa pagpangita kay sa gibuhat sa runtime linker.

Ang linker naggamit sa mosunod nga mga dalan sa pagpangita aron sa pagpangita sa gikinahanglan nga mga shared library.

1.

Ang bisan unsang mga direktoryo nga gitino sa -rpath-link nga mga kapilian.

2.

Ang bisan unsang mga direktoryo nga gitino sa -rpath mga kapilian. Ang kalainan tali sa -rpath ug -rpath-link mao nga ang mga direktoryo nga gitino sa -rpath mga kapilian nalakip sa executable ug gigamit sa runtime, samtang ang -rpath-link nga opsyon epektibo lamang sa link time. Kini alang sa lumad nga linker lamang.

3.

Sa usa ka sistema sa ELF, kung wala gigamit ang -rpath ug "rpath-link", pangitaa ang sulod sa variable nga "LD_RUN_PATH". Kini alang sa lumad nga linker lamang.

4.

Sa SunOS, kung ang opsiyon sa -rpath wala gamita, pangitaa ang bisan unsa nga mga direktoryo nga pihong gamit ang mga opsiyon sa L.

5.

Alang sa lumad nga linker, ang mga kaundan sa environment variable "LD_LIBRARY_PATH".

6.

Alang sa usa ka lumad nga ELF linker, ang mga direktoryo sa "DT_RUNPATH" o "DT_RPATH" sa usa ka shared library gipangita alang sa mga shared library nga gikinahanglan niini. Ang mga "DT_RPATH" nga mga entrada wala panumbalinga kung anaa ang mga "DT_RUNPATH".

7.

Ang mga default nga direktoryo, kasagaran / lib ug / usr / lib .

8.

Alang sa lumad nga linker sa usa ka sistema sa ELF, kung anaa ang file /etc/ld.so.conf , ang listahan sa mga direktoryo nga makita sa maong file.

Kung ang wala gikinahanglan nga librarya nga gipakigbahin dili makita, ang linker mopagawas og pasidaan ug ipadayon ang link.

-nagbalhin

-Bihiya

Paghimo og shared library. Kini gisuportahan lamang sa ELF, XCOFF ug SunOS nga mga plataporma. Sa SunOS, ang linker awtomatikong maghimo sa usa ka shared library kung ang opsiyon sa -e dili gigamit ug adunay mga dili tino nga simbolo sa link.

- us aka komon

Kini nga kapilian nagsulti sa ld aron sa pagsusi sa mga komon nga mga simbolo sa gidak-on sa diha nga kini nagbutang kanila sa angay nga mga seksyon sa output. Una moabut ang tanan nga usa ka simbolo nga byte, dayon ang tanan nga duha ka ba-ba, dayon ang tanan nga upat ka mga ba-ba, ug dayon ang tanan pa. Kini aron mapugngan ang mga kal-ang tali sa mga simbolo tungod sa mga kakulian sa paglinya.

- nag-us-us-usik [ gidak-on ]

Sama sa --split-by-reloc apan nagmugna og usa ka bag-ong output nga seksyon alang sa matag input file sa dihang ang gidak-on maabot. gidak-on ang mga default sa usa ka gidak-on sa 1 kon dili gihatag.

- pagsulat-by-reloc [ pag-ihap ]

Naningkamot nga makamugna og dugang nga mga seksyon sa output file aron walay bisan usa ka output nga seksyon sa file naglangkob labaw pa sa pag-ihap sa mga relocation. Kini mapuslanon sa paghimo sa dako nga mga relocatable nga mga file alang sa pag-download ngadto sa pipila ka tinuod nga panahon nga mga kernels sa COFF object file format; tungod kay ang COFFcannot nagrepresentar sa kapin sa 65535 nga pagbalhin sa usa ka seksyon. Timan-i nga kini mapakyas sa pagtrabaho uban sa mga object file format nga wala mosuporta sa mga arbitrary nga mga seksyon. Ang linker dili magbahin sa indibidwal nga mga seksyon sa pag-usab aron pag-apod-apod, busa kung ang usa ka seksyon sa input adunay labaw pa kaysa pag-isip nga relokasyon ang usa ka output nga seksyon adunay daghang mga relokasyon. ibutang ang mga default sa usa ka bili nga 32768.

- istatistika

Pag-compute ug ipakita ang mga estadistika mahitungod sa operasyon sa tig-link, sama sa oras sa pagpatuman ug paggamit sa panumduman.

- batbat nga format

Alang sa uban nga mga target, ang output sa ld lahi sa pipila ka mga paagi gikan sa output sa pipila ka mga existing linker. Kini nga switch naghangyo nga gamiton ang tradisyonal nga format hinoon.

Pananglitan, sa SunOS, ang ld naghiusa sa mga duplicate entries sa simbolo sa talahanayan. Kini makapakunhod sa gidak-on sa usa ka output file nga adunay hingpit nga pag-debug sa impormasyon pinaagi sa kapin sa 30 porsyento. Ikasubo, ang programa sa SunOS "dbx" dili makabasa sa resulta nga programa ("gdb" walay problema). Ang switch sa -traditional-format nagsulti sa ld sa dili pagsagol sa mga dobleng entries.

- seksyon-pagsugod sectionname = org

Pangitaa ang usa ka seksyon sa output file sa hingpit nga address nga gihatag sa org . Mahimo nimong gamiton kini nga kapilian sa makadaghang higayon kon gikinahanglan aron sa pagpangita sa daghang mga seksyon sa linya sa komand. org kinahanglan nga usa ka single hexadecimal integer; alang sa pagkompirma sa ubang mga linker, mahimo nimo nga palayason ang nag-unang 0x nga sagad nga may kalabutan sa mga hexadecimal values. Timan-i: kinahanglan nga walay puti nga luna tali sa seksyon sa seksyon , ang parehas nga ilhanan (`` = ''), ug org .

-Tbss org

-Tdata org

-Ttext org

Paggamit sa org isip pagsugod sa --- --- ang "bss", "data", o ang "teksto" nga bahin sa output file. org kinahanglan nga usa ka single hexadecimal integer; alang sa pagkompirma sa ubang mga linker, mahimo nimo nga palayason ang nag-unang 0x nga sagad nga may kalabutan sa mga hexadecimal values.

--dll-verbose

- Sulti

Ipakita ang numero sa bersyon alang sa ld ug i-lista ang gisuplayan nga mga pag-uyon sa linker. Ipakita kung unsang mga input files ang mahimo ug dili maablihan. Ipakita ang linker script nga gigamit sa linker.

- pagbalhin-script = version-scriptfile

Tukma ang ngalan sa usa ka bersyon script ngadto sa linker. Kasagaran kini gigamit sa paghimo sa mga shared library aron sa pagtino sa dugang nga kasayuran mahitungod sa bersyon heirarchy alang sa library nga gimugna. Kini nga kapilian makahuluganon lamang sa mga plataporma sa ELF nga nagsuporta sa mga librarya nga gipaambit.

- Warn-komon

Pahimangno sa dihang ang usa ka komon nga simbolo nga gihiusa uban sa laing komon nga simbolo o uban sa kahulugan sa simbolo. Ang mga linker sa Unix nagtugot niining medyo sayon ​​nga praktis, apan ang mga linker sa ubang mga operating system wala. Kini nga opsyon nagtugot kanimo sa pagpangita sa mga potensyal nga mga suliran gikan sa paghiusa sa mga simbolo sa tibuok kalibutan. Ikasubo, ang uban nga mga librarya sa C naggamit niini nga praktis, aron makadawat ka og pipila ka mga pasidaan mahitungod sa mga simbolo sa mga librarya ingon man sa imong mga programa.

Adunay tulo ka matang sa mga simbolo sa kalibutan, gihulagway dinhi sa mga panig-ingnan sa C:

int i = 1;

Usa ka kahulogan, nga anaa sa sinugdanan nga datos nga seksyon sa output file.

extern int i;

Usa ka dili matin-aw nga pakisayran, nga wala maggahin sa luna. Kinahanglan nga adunay usa ka kahulugan o usa ka komon nga simbolo alang sa mga variable sa usa ka dapit.

int i;

Usa ka komon nga simbolo. Kon adunay usa lamang (usa o labaw pa) mga komon nga simbolo alang sa usa ka variable, kini moadto sa uninitialized data area sa output file. Ang linker naghiusa sa daghang mga simbolo nga sagad alang sa samang variable sa usa ka simbolo. Kon kini lainlain ang gidak-on, kini ang pinakadako nga gidak-on. Ang linker nag-usab sa usa ka komon nga simbolo ngadto sa usa ka deklarasyon, kon adunay usa ka kahulogan sa pareho nga variables.

Ang -warn-common nga kapilian makahimo og lima ka matang sa mga pasidaan. Ang matag pahimangno naglangkob sa usa ka parisan sa mga linya: ang unang naghulagway sa simbolo nga bag-o pa lang nga nasugatan, ug ang ikaduha naghulagway sa naunang simbolo nga nakit-an sa sama nga ngalan. Ang usa o ang duha sa duha ka mga simbolo mahimong komon nga simbolo.

1.

Pagbalhin sa usa ka komon nga simbolo ngadto sa usa ka pakisayran, tungod kay adunay usa ka kahulugan alang sa simbolo.

(): pasidaan: komon sa ` (
): pasidaan: gihubit dinhi

2.

Pagbalhin sa usa ka komon nga simbolo ngadto sa usa ka pakisayran, tungod kay ang usa ka paghulagway sa ulahi alang sa simbolo nahibalag. Sama kini sa naunang kaso, gawas nga ang mga simbolo makita sa lain-laing pagkasunod.

(): pasidaan: kahulugan sa ` (): pasidaan: komon ania

3.

Paggrupo sa usa ka komon nga simbolo nga adunay naandan nga simbolo sa naandang parehas.

(
): pasidaan: daghang mga komon sa ` (
): pasidaan:

4.

Paggrupo sa usa ka komon nga simbolo nga adunay nauna nga mas komon nga simbolo.

(): pasidaan: komon sa ` (): pasidaan:

5.

Paghiusa sa usa ka komon nga simbolo nga adunay nauna nga mas gamay nga simbolo. Sama kini sa naunang kaso, gawas nga ang mga simbolo makita sa lain-laing pagkasunod.

(): pasidaan: komon sa ` (): pasidaan: mas gamay nga komon dinhi

--Warn-constructors

Pahimangno kung adunay bisan unsang global nga mga konstruktura ang gigamit. Kini mapuslanon lamang alang sa pipila ka mga format sa file sa object. Alang sa mga format sama sa COFF o ELF, ang linker dili makamatikod sa paggamit sa global nga mga konstruktor.

--warn-multiple-gp

Pasidan-an kung gikinahanglan ang daghang mga punto sa global pointer sa output file . Kini makahuluganon lamang alang sa pipila ka mga processor, sama sa Alpha. Sa piho nga paagi, ang uban nga mga processor nagbutang sa dagko-gipabilhan nga mga constante sa usa ka espesyal nga seksyon. Ang usa ka espesyal nga rehistro (ang global nga pointer) nagatudlo ngadto sa tunga niini nga seksyon, aron ang mga constants mahimong ma-load nga hapsay pinaagi sa usa ka relatibo nga pagsulbad mode nga base-register. Tungod kay ang offset sa base-register nga paryente nga paagi gitakda ug medyo gamay (pananglitan, 16 ka bits), kini naglimite sa maximum nga gidak-on sa kanunay nga linaw. Busa, sa dagkong mga programa, kasagaran gikinahanglan nga gamiton ang daghang mga hiyas sa global nga pointer aron masulbad ang tanang posibleng mga kalagmitan. Kini nga kapilian nagpahinabo sa usa ka pahimangno nga ipagula kung kini nga kaso mahitabo.

- Warn-kausa

Usa lamang ka pagpahimangno alang sa matag dili tino nga simbolo, kay sa usa ka beses sa usa ka module nga nagpunting niini.

- Alang-alang ang seksyon

Pahimangno kon ang address sa usa ka seksyon sa output nausab tungod sa paglinya. Kasagaran, ang pag-align gipahimutang sa usa ka input section. Ang adres mabag-o lamang kon dili kini tin-aw; nga mao, kon ang sugo sa "SEKSYON" wala maghisgot sa pagsugod sa seksyon alang sa seksyon.

--whole-archive

Alang sa matag archive nga gihisgutan sa command line pagkahuman sa opsyon sa -whole-archive , i-apil ang matag object file sa archive sa link, imbis mangita sa archive alang sa gikinahanglan nga mga file sa object. Kasagaran kini gigamit sa paghimo sa usa ka file sa archive ngadto sa usa ka gipakigbahin nga librarya, nga nagpugos sa tanan nga butang nga mahilakip sa gidala nga librarya. Mahimong gamiton kini nga kapilian labaw sa makausa.

Duha ka mga nota sa diha nga naggamit niini nga opsyon gikan sa gcc: Una, ang gcc wala mahibalo mahitungod niini nga kapilian, mao nga imong gamiton -Wl, -whole-archive . Ikaduha, ayaw kalimot sa paggamit -Wl, -no-whole-archive human sa listahan sa mga archives, tungod kay ang gcc magdugang sa kaugalingong listahan sa mga archive sa imong link ug tingali dili nimo gusto nga kini nga bandila makaapekto sa mga tawo usab.

--wrap simbolo

Gamita ang function sa wrapper alang sa simbolo . Ang bisan unsang dili matin-aw nga paghisgot sa simbolo masulbad sa "__ wrap_symbol". Ang bisan unsang dili matin-aw nga paghisgot sa "__real_symbol" mahimong masulbad nga simbolo .

Mahimo kini gamiton aron paghatag og usa ka wrapper alang sa usa ka function sa sistema. Ang function sa wrapper kinahanglan nga gitawag nga "__wrap_symbol". Kung gusto nga tawgon ang sistema sa pag-function, kinahanglan nga tawagan ang "__ real_symbol".

Aniay gamay nga pananglitan:

walay sulod * __wrap_malloc (int c) {printf ("malloc nga gitawag nga% ld \ n", c); mobalik __real_malloc (c); }

Kung ikaw mag-link sa uban nga code uban niining file gamit ang --wrap malloc , dayon ang tanan nga tawag sa "malloc" motawag sa function "__wrap_malloc" sa baylo. Ang tawag sa "__real_malloc" sa "__wrap_malloc" magtawag sa tinuod nga "malloc" function.

Mahimo nimong maghatag usab og usa ka "__real_malloc" nga function usab, aron ang mga link nga wala ang opsyon sa - wrap magmalampuson. Kung buhaton nimo kini, dili nimo ibutang ang kahulugan sa "__ real_malloc" sa sama nga file nga "__wrap_malloc"; kung buhaton nimo, ang assembler mahimong masulbad ang tawag sa dili pa ang linker adunay higayon sa pagputos niini sa "malloc".

- mahimo-bag-ong-dtag

--disable-new-dtags

Kini nga linker makahimo sa bag-ong mga tag-init nga mga tag sa ELF. Apan ang mas magulang nga mga sistema sa ELF dili makasabut niini. Kon imong tukion ang - mahimo nga-bag-ong mga dtags , ang mga dynamic nga mga tag gimugna kung gikinahanglan. Kon imong tukion ang - dili madawat-bag-o-dtag , walay bag-ong mga tag -init nga mga tag gimugna. Sa kasagaran, ang mga bag-o nga mga tag sa tagal dili gibuhat. Hinumdumi nga kadtong mga kapilian mahimo lamang magamit alang sa mga sistema sa ELF.

Ang link sa i386 PE nagsuportar sa -kon nga kapilian, nga maoy hinungdan nga ang output mahimong usa ka dinamikong kausaban nga librarya (DLL) sa baylo nga usa ka normal nga executable. Kinahanglan mong hinganlan ang output "* .dll" sa dihang gamiton nimo kini nga kapilian. Dugang pa, ang linker hingpit nga nagsuporta sa standard nga "* .def" nga mga file, nga mahimo nga matino sa linker command line sama sa usa ka object file (sa pagkatinuod, kini kinahanglan nga mag-una sa mga archive nga mag-export kini og mga simbolo gikan, aron maseguro nga kini ma-link, sama sa normal nga file sa butang).

Dugang sa mga kapilian nga komon sa tanan nga mga target, ang i386 PE linker nagsuporta sa dugang nga command line options nga espesipiko sa i386 PE target. Ang mga kapilian nga nagkuha sa mga mithi mahimong mabulag gikan sa ilang mga hiyas pinaagi sa usa ka luna o usa ka kaangay nga timaan.

--add-stdcall-alias

Kon ihatag, ang mga simbolo nga may stdcall suffix (@ nn ) i-eksport nga as-is ug usab ang suffix nga gihukman.

- Basi-file nga file

Paggamit sa file ingon nga ngalan sa usa ka file diin ang pagluwas sa base nga mga address sa tanan nga mga relocation nga gikinahanglan alang sa pagmugna DLLs uban sa dlltool .

--dll

Paghimo sa usa ka DLL sa baylo nga usa ka regular nga executable. Mahimo usab nimo gamiton -kon ma-share o tukma ang "LIBRARY" sa usa ka gihatag nga ".def" nga file.

- mahimo-stdcall-fixup

- Dili madawat-stdcall-fixup

Kung ang link nakakaplag usa ka simbolo nga dili kini masulbad, kini mosulay sa paghimo'g "fuzzy linking" pinaagi sa pagpangita sa laing tinudlong simbolo nga lahi lamang sa format sa simbolo nga pangalan (cdecl vs stdcall) ug pagasulbad ang simbolo pinaagi sa pag-link sa duwa. Pananglitan, ang dili tino nga simbolo nga "_foo" mahimong nalambigit sa function "_foo @ 12", o ang dili matino nga simbolo "_bar @ 16" mahimo nga nalambigit sa function "_bar". Sa diha nga ang tig-abag sa pagbuhat niini, nagpatik kini og usa ka pasidaan, tungod kay sa kasagaran kini dili mapakyas sa pag-link, apan usahay ang pag-import sa mga librarya nga gikan sa mga third-party nga mga dlls kinahanglan nga kini nga bahin mahimong magamit. Kon imong tukion ang - mahimo nga mahimo-stdcall-fixup , kini nga feature hingpit nga nakapa-enable ug ang mga pasidaan wala maimprinta. Kon imong tukion ang - dili madawat-stdcall-fixup , kini nga bahin gibabagan ug ang maong mga mismatches giisip nga mga sayup.

--Export-tanan-nga simbolo

Kung gihatag, ang tanan nga mga simbolo sa kalibutan sa mga butang nga gigamit sa pagtukod sa usa ka DLL pag-eksport sa DLL. Timan-i nga kini mao ang default kung wala'y bisan unsang mga simbolo nga na-eksport. Sa diha nga ang mga simbolo klaro nga gi-eksport pinaagi sa mga file sa DEF o gipahayag sa eksaktong paagi pinaagi sa mga attribute sa pag-function, ang default mao ang dili pag-export sa bisan unsa gawas kon kini nga kapilian gihatag. Hinumdomi nga ang mga simbolo nga "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", ug "impure_ptr" dili awtomatikong i-export. Dugang pa, ang mga simbolo nga gi-import gikan sa uban nga mga DLLs dili i-export pag-usab, ni ang mga simbolo nga nagpunting sa internal layout sa DLL sama sa nagsugod sa "_head_" o nagtapos sa "_iname". Dugang pa, walay mga simbolo gikan sa "libgcc", "libstd ++", "libmingw32", o "crtX.o" ang ma-eksport. Ang mga simbolo kansang mga ngalan magsugod sa "__rtti_" o "__builtin_" dili ma-eksport, aron sa pagtabang sa C ++ DLLs. Sa katapusan, adunay daghang listahan sa cygwin-private nga mga simbolo nga wala ma-eksport (klaro, kini mapadapat sa dihang magtukod og DLLs alang sa cygwin target).

Kini nga mga cygwin-excludes mao ang: "_cygwin_dll_entry @ 12", "_cygwin_crt0_common @ 8", "_ cygwin_noncygwin_dll_entry @ 12", "_fmode", "_impure_ptr", "cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2", "cygwin_premain3 ", ug" environ ".

- Mga simbolo , simbolo , ...

Nagtino sa usa ka lista sa mga simbolo nga dili awtomatikong i-eksport. Ang mga pangalan sa simbolo mahimong mapugngan sa mga koma o mga kolon.

- Examples-libs lib , lib , ...

Nagtino sa usa ka lista sa mga librarya sa arkibo diin ang mga simbolo dili awtomatikong ipagawas. Ang mga ngalan sa librarya mahimo nga ibulag pinaagi sa mga koma o mga kolon. Ang pagtino sa "-exclude-libs ALL" wala maglakip sa mga simbolo sa tanang librarya sa archive gikan sa awtomatik nga eksport. Ang mga simbolo nga tin-aw nga gilista sa usa ka .def file nga gi-eksport, bisan pa niini nga kapilian.

- file-alignment

Tinoa ang pag-align sa file. Ang mga seksyon diha sa file kanunay magsugod sa file offset nga mga multiple niini nga numero. Kini nga default sa 512.

- nanghatag

- Magtipig reserve , pasalig

Tinoa ang gidaghanon sa panumduman nga gitagana (ug opsyonal nga mopasalig) aron gamiton isip pundok alang niini nga programa. Ang default mao ang 1Mb reserved, 4K nga nahimo.

- nga hulagway nga basihan

Gamita ang bili isip base nga address sa imong programa o dll. Kini ang labing ubos nga lokasyon sa panumduman nga gamiton sa diha nga ang imong programa o dll ang gikarga. Aron makunhuran ang panginahanglan sa pagbalhin ug pagpauswag sa performance sa imong mga dlls, ang matag usa kinahanglan adunay usa ka talagsaon nga base address ug dili magsaput sa bisan unsang mga dlls. Ang default mao ang 0x400000 alang sa executables, ug 0x10000000 alang sa dlls.

--kill-sa

Kon ihatag, ang stdcall suffixes (@ nn ) kuhaon gikan sa mga simbolo sa dili pa kini ma-eksport.

--major-image-version nga bili

Nagbutang sa dagkong numero sa `` image version ''. Kahulogan sa 1.

- Ang bersyon nga bersyon sa mic

Nagbutang sa mayor nga numero sa `` os version ''. Kahulogan sa 4.

--major-subsystem-bersyon nga bili

Nagtindog ang mayor nga numero sa `` subsystem version ''. Kahulogan sa 4.

- Minor-image-version nga bili

Nagbutang sa menor de edad nga gidaghanon sa `` image version ''. Mga default sa 0.

- Minor-os nga bersyon nga bili

Gitakda ang menor de edad nga gidaghanon sa `os nga bersyon '. Mga default sa 0.

- Minor-subsystem-bersyon nga kantidad

Gitakda ang menor de edad nga numero sa `` subsystem version ''. Mga default sa 0.

- Output-def file

Ang linker maghimo sa file file nga maglakip sa usa ka DEF file nga katugbang sa DLL nga ang linker maoy hinungdan. Kini nga file sa DEF (nga kinahanglan tawagon nga "* .def") mahimong magamit aron sa paghimo sa usa ka import nga librarya nga may "dlltool" o mahimo gamiton ingon nga usa ka pakisayran ngadto sa mga awtomatiko o igo nga gipadala nga mga simbolo.

- out-implib file

Ang linker maghimo sa file file nga maglakip sa usa ka import lib nga katugbang sa DLL nga ang linker maoy hinungdan. Kini nga import lib (nga kinahanglan nga tawgon nga "* .dll.a" o "* .a" mahimong gamiton sa pag-link sa mga kliyente batok sa namugna nga DLL; kini nga kinaiya nagpaposible sa paglaktaw sa usa ka linain nga "dlltool" import library nga lakang.

--enable-auto-image-base

Awtomatiko nga pilion ang hulagway sa DLLs, gawas kon ang usa ipasabut gamit ang "-image-base" nga argumento. Pinaagi sa paggamit sa usa ka hash nga namugna gikan sa dllname aron makahimo og talagsaon nga mga baseng imahen alang sa matag DLL, ang mga pagsupak sa sulod sa panumduman ug mga relokasyon nga makalangan sa pagpatuman sa programa malikayan.

--disable-auto-image-base

Ayaw awtomatiko nga makahimo og usa ka talagsaon nga base sa imahe. Kung walay tin-aw nga hulagway sa base sa user ("- larawan-base") unya gamiton ang default sa platform.

--dll-search-prefix nga hilis

Sa diha nga ang pag-link nga dinamikong ngadto sa usa ka dll nga walay usa ka import library, pangitaa ang " .dll" sa pagpalabi sa "lib .dll". Kini nga kinaiya nagtugot sa sayon ​​nga pagkalahi tali sa DLLs nga gitukod alang sa nagkalain-laing mga "subplatforms": native, cygwin, uwin, pw, ug uban pa. Pananglitan, ang cygwin DLLs kasagaran nagagamit sa "--dll-search-prefix = cyg".

- mahimo-auto-import

Himoa nga komplikado ang pag-link sa "_symbol" ngadto sa "__imp__symbol" alang sa import nga DATA gikan sa DLLs, ug paghimo sa gikinahanglan nga mga simbolo sa pagtukod sa mga import nga librarya uban sa mga DATAexports. Kini sa kinatibuk-ang 'magtrabaho lamang' --- apan usahay mahimo nimo kining makita nga mensahe:

"Variable '' dili mahimong i-import og auto. Palihug basaha ang dokumentasyon alang sa ld nga" --enable-auto-import "alang sa mga detalye."

Kini nga mensahe mahitabo sa diha nga ang pipila (sub) nga ekspresyon nag-access sa usa ka address nga gihatag sa katapusan nga gihatag sa sumama sa duha ka constants (Win32 import nga mga lamesa nga nagtugot lamang sa usa). Ang mga panghitabo diin kini mahimong mahitabo naglakip sa mga access sa mga sakop nga bahin sa struct variable nga gi-import gikan sa usa ka DLL, ingon man usab sa paggamit sa usa ka kanunay nga index ngadto sa usa ka variable nga gi-import gikan sa usa ka DLL. Ang bisan unsang variable nga multiword (arrays, structs, taas, taas ug uban pa) mahimong magpahinabo niining kahimtang nga sayup. Bisan pa, bisan pa man ang eksaktong datos sa datos sa nakababag nga na-eksport nga variation, kini kanunay nga makamatikod niini, mag-isyu sa pasidaan, ug mogawas.

Adunay ubay-ubay nga mga paagi sa pagsulbad niini nga kalisud, walay pagsapayan sa matang sa datos sa na-eksport nga kapilian:

Ang usa ka paagi mao ang paggamit - mahimo-runtime-pseudo-reloc switch. Kini mobiya sa tahas sa pag-adjust sa mga pakisayran sa code sa imong kliyente alang sa runtime environment, busa kini nga pamaagi magamit lamang kung ang runtime environtment nagsuporta niini nga bahin.

Ang ikaduha nga solusyon mao ang pagpugos sa usa sa 'constants' nga mahimong usa ka variable --- nga mao ang, wala mailhi ug dili-optimizable sa pagtigum sa panahon. Alang sa arrays, adunay duha ka mga posibilidad: a) paghimo sa indexee (address sa array) usa ka variable, o b) paghimo sa 'constant' index usa ka variable. Busa:

extern type extern_array []; extern_array [1] -> {volatile type * t = extern_array; t [1]

o

extern type extern_array []; extern_array [1] -> {volatile int t = 1; extern_array [t]}

Para sa mga struct (ug kadaghanan sa mga lainlaing datos sa datos sa multiword) ang bugtong kapilian mao ang paghimo sa struct mismo (o ang taas nga taas, o ang ...) nga kausaban:

extern struct s extern_struct; extern_struct.field -> {volatile struct s * t = & extern_struct; t-> field}

o

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

Ang ikatulong pamaagi sa pagsagubang niini nga kalisud mao ang pagbiya sa 'auto-import' alang sa nakasala nga simbolo ug markahan kini sa "__declspec (dllimport)". Apan, sa praktika nga nagkinahanglan sa paggamit sa compile-time #defines aron ipakita kung nagtukod ka og DLL, pagtukod sa code sa kliyente nga mag-link sa DLL, o pagtukod / pag-link lamang sa usa ka static library. Sa paghimo sa pagpili tali sa nagkalainlaing mga pamaagi sa pagsulbad sa 'direktang pakigpulong nga adunay kanunay nga pag-atbang' nga problema, kinahanglan nga imong hunahunaon ang kasagaran nga paggamit sa kalibutan:

Orihinal:

--foo.h extern int arr []; --foo.c #include "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", arr [1]); }

Solusyon 1:

--foo.h extern int arr []; - foo.c #include "foo.h" void main (int argc, char ** argv) {/ * Kini nga workaround alang sa win32 ug cygwin; ayaw "pag-optimize" * / dali nga mahimo int * parr = arr; printf ("% d \ n", parr [1]); }

Solusyon 2:

--foo.h / * Mubo nga sulat: Gipakaingon nga auto-export (walay __declspec (dllexport)) * / #if (gitakda (_WIN32) || gihubit (__ CYGWIN__)) &&! )) #define FOO_IMPORT __declspec (dllimport) #else #define FOO_IMPORT #endif extern FOO_IMPORT int arr []; --foo.c #include "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", arr [1]); }

Ang ika-upat nga paagi aron malikayan kini nga problema mao ang pag-code sa imong librarya aron magamit ang usa ka praktikal nga interface kay sa usa ka data interface alang sa offending nga mga variable (eg set_foo () ug get_foo () accessor functions).

- Dili madawat-auto-import

Ayaw pagsulay sa pagbuhat sa sophisticalted pag-link sa "_symbol" ngadto sa "__imp__symbol" alang sa DATAimports gikan sa DLLs.

--enable-runtime-pseudo-reloc

Kung ang imong code adunay mga ekspresyon nga gihulagway sa --enable-auto-import nga seksyon, nga mao, ang DATAimports gikan sa DLL uban sa non-zero offset, kini nga switch maghimo sa usa ka vector sa 'runtime pseudo relocations' nga mahimong gamiton sa runtime environment aron ma-adjust ang mga pakisayran sa ingon nga datos sa code sa imong kliyente.

--disable-runtime-pseudo-reloc

Ayaw pagmugna og mga pseudo nga relocation alang sa non-zero offset DATA imports gikan sa DLLs. Kini ang default.

--enable-extra-pe-debug

Ipakita ang dugang nga impormasyon sa pag-debug nga may kalabutan sa pag-import sa simbolo sa auto-import.

- Pagpili-paglinya

Nagtakda sa pag-align sa seksyon. Ang mga seksyon sa panumduman kanunay magsugod sa mga address nga usa ka multiple niini nga numero. Kahulogan sa 0x1000.

- Stack reserve

- Magtipig nga reserba , pagbuhat

Tinoa ang gidaghanon sa panumduman nga magreserba (ug opsyonal nga pagbuhat) aron gamiton ingon nga stack alang niini nga programa. Ang default mao ang reserved 2Mb, 4K nga nahimo.

--subsystem nga

--subsystem nga : mayor

--subsystem nga : mayor . menor de edad

Nagtutok sa subsystem nga diin ipatuman ang imong programa. Ang legal nga mga prinsipyo nga "lumad", "windows", "console", ug "posix". Mahimo mo usab nga ibutang ang bersyon sa subsystem usab.

Importante: Gamita ang tawo nga sugo ( % man ) aron makita kung giunsa ang usa ka sugo nga gigamit sa imong partikular nga computer.