NOM ld - Utilitzant LD, el vinculador GNU SINOPSI ld opcions fitxer d'objectes … DESCRIPCIÓ ld combina una sèrie d'objectes i fitxers d'arxiu, trasllada les seves dades i lliga les referències de símbols. En general, l'últim pas en la compilació d'un programa és executar-seld. ld accepta fitxers de Llenguatge d'ordres del vinculador escrites en un supersector de la sintaxi del llenguatge d'ordres de l'editor d'enllaç de AT & T, per proporcionar un control explícit i total sobre el procés d'enllaç. Aquesta pàgina d'home no descriu el llenguatge d'ordres; vegeu elld entrada a "info" o manual ld: enllaçador de GNU, per obtenir informació completa sobre el llenguatge de comandaments i sobre altres aspectes de l'enllaçador de GNU. Aquesta versió deld utilitza les biblioteques BFD de propòsit general per operar en fitxers d'objectes. Això permetld per llegir, combinar i escriure fitxers d'objectes en molts formats diferents: per exemple, COFF o "a.out". Es poden enllaçar diferents formats per produir qualsevol tipus d'arxiu d'objecte disponible. A part de la seva flexibilitat, l'enllaçador de GNU és més útil que altres enllaços en proporcionar informació de diagnòstic. Molts enllaçadors abandonen l'execució immediatament després de trobar un error; quan sigui possible,ld continua executant, el que us permet identificar altres errors (o, en alguns casos, obtenir un fitxer de sortida malgrat l'error). El vinculador GNUld està pensat per cobrir una àmplia gamma de situacions, i ser el més compatible possible amb altres enllaçadors. Com a resultat, teniu moltes opcions per controlar el seu comportament. OPCIONS El enllaçador admet una infinitat d'opcions de línia de comandaments, però en la pràctica real, pocs d'ells s'utilitzen en qualsevol context particular. Per exemple, un ús freqüent deld és vincular fitxers d'objectes Unix estàndard en un sistema Unix estàndard i compatible. En aquest sistema, vincular un fitxer "hello.o": ld -o /lib/crt0.o hello.o -lcAixò li diuld per produir un fitxer anomenat sortida com a resultat de l'enllaç del fitxer "/lib/crt0.o" amb "hello.o" i la biblioteca "libc.a", que provindrà dels directoris de cerca estàndard. (Veure la discussió de la-l opció següent). Algunes de les opcions de la línia d'ordres ald es pot especificar en qualsevol punt de la línia d'ordres. No obstant això, opcions que fan referència a fitxers, com ara-l o-T, feu que el fitxer es llegeixi en el punt en què apareix l'opció a la línia d'ordres, en relació amb els fitxers d'objectes i altres opcions de fitxer. La repetició d'opcions que no siguin de fitxers amb un argument diferent no tindran cap efecte addicional, o anul·laran les aparicions anteriors (aquelles més a l'esquerra de la línia d'ordres) d'aquesta opció. Les opcions que es puguin especificar de forma significativa més d'una vegada s'indiquen a les descripcions següents. Els arguments no opcionals són fitxers d'objectes o fitxers que s'han de connectar. Poden seguir-se, precedir-se o barrejar-se amb opcions de la línia d'ordres, excepte que no es pot col · locar un argument d'arxiu d'objecte entre una opció i el seu argument. En general, el vinculador s'invoca amb almenys un fitxer d'objecte, però podeu especificar altres formes d'arxius d'entrada binàries utilitzant-l, -R, i el llenguatge d'ordres del script. Si no S'inclouen tots els fitxers d'entrada binària, el vinculador no produeix cap sortida i emet el missatgeNo hi ha fitxers d'entrada. Si el vinculador no pot reconèixer el format d'un fitxer d'objectes, suposarà que és un script d'enllaçador. Un script especificat d'aquesta manera augmenta la seqüència d'enllaços principal utilitzada per a l'enllaç (ja sigui l'script per enllaçar per defecte o el que s'utilitza-T). Aquesta característica permet que el vinculador es vinculi amb un fitxer que sembla ser un objecte o un arxiu, però en realitat només defineix alguns valors de símbols o utilitza "INPUT" o "GROUP" per carregar altres objectes. Tingueu en compte que especificar un script d'aquesta manera només augmenta l'script principal del vinculador; utilitzar el-T opció per reemplaçar completament l'script per enllaçar per defecte. Per a les opcions els noms són una sola lletra, els arguments d'opcions han de seguir la lletra de l'opció sense intervenir en espais en blanc, o ser donats com a arguments separats immediatament després de l'opció que els requereixi. Per a les opcions els noms dels quals són lletres múltiples, ja sigui un tauler o dos pot precedir el nom de l'opció; per exemple,-trace-symbol i- símbol de traça són equivalents. Nota: hi ha una excepció a aquesta regla. Les opcions de lletra múltiple que comencen amb una casella inferior 'o' només poden ser precedides per dos guions. Això és per reduir la confusió amb la-o opció. Així, per exemple-màgic estableix el nom del fitxer de sortidamàgia mentre que- màgic estableix la bandera NMAGIC a la sortida. Els arguments a les opcions de lletra múltiple han d'estar separats del nom de l'opció amb un signe igual, o ser donats com a arguments separats immediatament després de l'opció que els requereixi. Per exemple,--track-symbol foo i--trace-symbol = foo són equivalents. S'admeten les abreviatures úniques dels noms de les opcions de lletres múltiples. Nota: si el vinculador s'invoca de forma indirecta, a través d'un controlador de compilador (p. Exgcc), llavors totes les opcions de la línia d'ordres del vinculador haurien d'estar prefixades per-Wl, (o el que sigui apropiat per al controlador del compilador en particular) d'aquesta manera: gcc -Wl, - start group foo.o bar.o -Wl, - endgroupAixò és important, perquè en cas contrari, el programa del controlador del compilador pot deixar anar silenciosament les opcions del vinculador, resultant en un enllaç erroni. Aquí teniu una taula dels switches genèrics de la línia de comandaments acceptats pel connector GNU: -a paraula clau Aquesta opció és compatible amb la compatibilitat HP / UX. El paraula clau L'argument ha de ser una de les cadenesArxiu, compartit, oper defecte. -arquitectura és funcionalment equivalent a-Bàsic, i les altres dues paraules clau són funcionalment equivalents-Bynamic. Aquesta opció es pot utilitzar en diverses ocasions. -A arquitectura --architecture = arquitectura En el llançament actual deld, aquesta opció només és útil per a la família d'arquitectures Intel 960. En aquestld configuració, la arquitectura argument identifica l'arquitectura particular de la família 960, permetent algunes salvaguardes i modificant la ruta de cerca de la biblioteca d'arxius. Publicacions futures deld pot suportar una funcionalitat similar per a altres famílies d'arquitectura. -b format d'entrada --format = format d'entrada ld es pot configurar per suportar més d'un tipus d'arxiu d'objectes. Si el teuld està configurat d'aquesta manera, podeu utilitzar el-b opció per especificar el format binari dels fitxers d'objectes d'entrada que segueixen aquesta opció a la línia d'ordres. Fins i tot quanld està configurat per suportar formats d'objectes alternatius, normalment no necessiteu especificar-ho, comld s'ha de configurar per esperar com a format d'entrada predeterminat el format més habitual en cada màquina. format d'entrada és una cadena de text, el nom d'un format particular suportat per les biblioteques BFD. (Podeu llistar els formats binaris disponibles ambobjdump -i.) Podeu utilitzar aquesta opció si esteu enllaçant fitxers amb un format binari inusual. També podeu fer servir-b per canviar els formats de forma explícita (quan s'uneixen fitxers d'objectes de diferents formats), incloent-hi-b format d'entrada abans de cada grup d'arxius d'objectes en un format concret. El format per defecte es pren de la variable d'entorn "GNUTARGET". També podeu definir el format d'entrada d'un script, utilitzant l'ordre "TARGET"; -c MRI-fitxer de comandaments --mri-script = MRI-fitxer de comandaments Per compatibilitat amb enllaçadors produïts per ressonància magnètica,ld accepta fitxers script escrits en un llenguatge d'ordres alternatiu i restringit, descrit a la secció Archivos de scripts compatibles de MRI de la documentació GNU ld. Introduïu fitxers de seqüència de MRI amb l'opció-c; utilitzar el-T opció per executar scripts d'enllaços escrits amb finalitats generalsld llenguatge de scripting Si MRI-cmdfile no existeix,ldho busca en els directoris especificats per qualsevol-L opcions. -d -dc -dp Aquestes tres opcions són equivalents; Es permeten múltiples formularis per a la compatibilitat amb altres enllaços. Assignen espai a símbols comuns, fins i tot si s'especifica un fitxer de sortida relocatable (amb-r). La seqüència de comandaments "FORCE_COMMON_ALLOCATION" té el mateix efecte. -e entrada --entrada = entrada Ús entrada com el símbol explícit per iniciar la execució del vostre programa, en lloc del punt d'entrada predeterminat. Si no hi ha cap símbol anomenat entrada , el vinculador intentarà analitzar entrada com a nombre, i utilitzeu-lo com a adreça d'entrada (el número s'interpretarà a la base 10, podeu utilitzar una adreça principal0x per a la base 16 o un líder0 per a la base 8). -E --export-dynamic Quan creeu un executable enllaçat dinàmicament, afegiu tots els símbols a la taula de símbols dinàmics. La taula de símbols dinàmics és el conjunt de símbols que són visibles des d'objectes dinàmics en temps d'execució. Si no utilitzeu aquesta opció, normalment la taula de símbols dinàmics contindrà només aquells símbols referenciats per algun objecte dinàmic esmentat a l'enllaç. Si utilitzeu "dlopen" per carregar un objecte dinàmic que necessita referir-se als símbols definits pel programa, en lloc d'un altre objecte dinàmic, probablement haurà d'utilitzar aquesta opció quan vinculi el propi programa. També podeu utilitzar l'script de versió per controlar quins símbols s'han d'afegir a la taula de símbols dinàmics si el format de sortida ho admet. Vegeu la descripció de--version-script a @ ref {VERSION}. -EB Enllaça els objectes big-endian. Això afecta el format de sortida predeterminat. -EL Vincular els objectes de little-endian. Això afecta el format de sortida predeterminat. -f - auxiliars nom Quan creeu un objecte compartit ELF, configureu el camp DT_AUXILIARY intern al nom especificat. Això indica al vinculador dinàmic que la taula de símbols de l'objecte compartit s'ha d'utilitzar com a filtre auxiliar a la taula de símbols de l'objecte compartit. nom . Si més tard vinculi un programa contra aquest objecte de filtre, llavors, quan executeu el programa, l'enllaçador dinàmic visualitzarà el camp DT_AUXILIARY. Si el vinculador dinàmic resol qualsevol símbol de l'objecte del filtre, primer comprovarà si hi ha una definició en l'objecte compartit nom . Si n'hi ha, s'utilitzarà en comptes de la definició de l'objecte de filtre. L'objecte compartit nom no necessita existir. Així, l'objecte compartit nom es pot utilitzar per proporcionar una implementació alternativa de certes funcions, potser per depuració o per a un rendiment específic de la màquina. Aquesta opció es pot especificar més d'una vegada. Les entrades DT_AUXILIARY es crearan en l'ordre en què apareixen a la línia d'ordres. -F nom - filtre nom Quan creeu un objecte compartit ELF, estableixi el camp DT_FILTER intern al nom especificat. Això indica al vinculador dinàmic que la taula de símbols de l'objecte compartit que s'està creant s'hauria d'utilitzar com a filtre a la taula de símbols de l'objecte compartit. nom . Si més tard vinculi un programa contra aquest objecte de filtre, llavors, quan executeu el programa, l'enllaçador dinàmic visualitzarà el camp DT_FILTER. L'enllaçador dinàmic resol els símbols d'acord amb la taula de símbols de l'objecte del filtre com és habitual, però en realitat enllaçarà amb les definicions que es troben en l'objecte compartit nom . D'aquesta manera, l'objecte del filtre es pot utilitzar per seleccionar un subconjunt dels símbols proporcionats per l'objecte nom . Alguns connectors antics usen el-F opció a través d'una cadena d'eines de compilació per especificar el format d'un fitxer d'objectes per als fitxers d'objectes d'entrada i sortida. El vinculador de GNU utilitza altres mecanismes per a aquest propòsit: el-b, --format, --format opcions, la comanda "TARGET" en les seqüències d'ordres del vinculador i la variable d'entorn "GNUTARGET". El vinculador de GNU ignorarà el-F opció quan no es crea un objecte compartit ELF. -fin nom Quan creeu un objecte executable o compartit ELF, truqueu a NAME quan es descarregui l'objecte executable o compartit, establint DT_FINI a l'adreça de la funció. Per defecte, el vinculador utilitza "_fini" com a funció a trucar. -g Ignorat. Proporcionat per compatibilitat amb altres eines. -G valor --gpsize = valor Establiu la mida màxima dels objectes que cal optimitzar usant el registre GP mida . Això només és significatiu per a formats d'arxiu d'objectes com MIPS ECOFF que suporta posar objectes grans i petits a diferents seccions. Això s'ignora per a altres formats de fitxer d'objectes. -h nom -soname = nom Quan creeu un objecte compartit ELF, estableixi el camp DT_SONAME intern al nom especificat. Quan un fitxer executable està enllaçat amb un objecte compartit que té un camp DT_SONAME, aleshores quan s'executa l'executable, l'enllaçador dinàmic intentarà carregar l'objecte compartit especificat pel camp DT_SONAME en comptes de fer servir el nom del fitxer donat al vinculador. -i Realitzeu un enllaç incremental (igual que l'opció-r). -init nom Quan creeu un objecte executable o compartit ELF, truqueu a NAME quan es carregui l'objecte executable o compartit, establint DT_INIT a l'adreça de la funció. Per defecte, el vinculador utilitza "_init" com a funció a trucar. -l Arxiu - bibliogràfic = Arxiu Afegeix un fitxer d'arxiu Arxiu a la llista de fitxers a enllaçar. Aquesta opció es pot utilitzar en diverses ocasions.ld buscarà la seva llista de rutes per a les aparicions de "libarchive.a" per a tots Arxiu especificat En sistemes que admeten biblioteques compartides,ld També podeu cercar biblioteques amb extensions diferents de ".a". Concretament, en sistemes ELF i SunOS,ld buscarà un directori per a una biblioteca amb una extensió de ".so" abans de buscar-ne una amb una extensió de ".a". Per convenció, l'extensió ".so" indica una biblioteca compartida. El vinculador buscarà un arxiu només una vegada, a la ubicació on s'especifica a la línia d'ordres. Si l'arxiu defineix un símbol que no s'ha definit en un objecte que apareix abans de l'arxiu a la línia d'ordres, el vinculador inclourà els arxius apropiats de l'arxiu. Tanmateix, un símbol indefinit d'un objecte que apareix més endavant a la línia d'ordres no farà que el vinculador torni a cercar l'arxiu. Vegeu el-( opció per a una manera d'obligar el vinculador a cercar arxius diverses vegades. Podeu llistar el mateix arxiu diverses vegades a la línia d'ordres. Aquest tipus de cerca d'arxius és estàndard per als enllaços Unix. No obstant això, si esteu utilitzantld en AIX, tingueu en compte que és diferent del comportament de l'enllaçador AIX. -L cercadir --library-path = cercadir Afegeix ruta cercadir a la llista de camins queld buscarà biblioteques d'arxius ild control scripts. Podeu utilitzar aquesta opció cada nombre de vegades. Els directoris es busquen en l'ordre en què s'especifiquen a la línia d'ordres. Els directoris especificats a la línia d'ordres es busquen abans que els directoris predeterminats. Tots-L Les opcions s'apliquen a tots-l opcions, independentment de l'ordre en què apareguin les opcions. Si cercadir comença amb "=", llavors el "=" serà reemplaçat pel prefix sysroot , una ruta especificada quan el vinculador està configurat. El conjunt predeterminat de rutes cercades (sense especificar-lo)-L) depèn del mode d'emulacióld està utilitzant, i en alguns casos també sobre com es va configurar. Les rutes també es poden especificar en un script d'enllaç amb l'ordre "SEARCH_DIR". Els directoris especificats d'aquesta manera es busquen en el punt en què apareix l'script d'enllaçador a la línia d'ordres. -m emulació Emula el emulació enllaçador Podeu llistar les emulacions disponibles amb el--verbose o-Vopcions. Si el-m l'opció no s'utilitza, l'emulació es pren de la variable d'entorn "LDEMULATION", si es defineix. En cas contrari, l'emulació predeterminada depèn de com es va configurar el vinculador. -M --print-map Imprimiu un mapa d'enllaç a la sortida estàndard. Un mapa d'enllaç proporciona informació sobre l'enllaç, incloent-hi el següent: * On es col·loquen mapes i fitxers d'objectes a la memòria. * Com s'assignen els símbols comuns. * Tots els membres de l'arxiu inclosos a l'enllaç, amb una menció del símbol que va provocar la incorporació del membre de l'arxiu. -n --nmagic Desactiveu l'alineació de pàgines de les seccions i marqueu la sortida com a "NMAGIC" si és possible. -N - màgic Estableix les seccions de text i de dades per a ser llegibles i escriure. A més, no alineeu la pàgina amb el segment de dades i desactiveu la vinculació amb les biblioteques compartides. Si el format de sortida admet nombres màgics d'estil Unix, marqueu la sortida com a "OMAGIC". --no-omagic Aquesta opció nega la majoria dels efectes del-N opció. Estableix la secció de text com a només lectura, i obliga al segment de dades a estar alineat a la pàgina. Nota: aquesta opció no permet la vinculació de biblioteques compartides. Ús-Bynamic per això. -o sortida --output = sortida Ús sortida com el nom del programa produït perld; si aquesta opció no s'especifica, el nom a.out s'utilitza per defecte. La comanda script "OUTPUT" també pot especificar el nom del fitxer de sortida. -O nivell Si nivell és un valor numèric superior a zerold optimitza la sortida. Això pot trigar molt més temps i, per tant, probablement només s'hauria d'activar per al binari final. -q --emit-relocs Deixeu les seccions i els continguts de la reubicació en exececutables totalment enllaçats. Les eines d'anàlisi i optimització d'enllaços de correu poden necessitar aquesta informació per tal de realitzar modificacions correctes d'executables. Això es tradueix en executables més grans. Aquesta opció només és compatible amb les plataformes ELF. -r --relocable Genereu sortida relocable, és a dir, generi un fitxer de sortida que, al seu torn, pugui servir d'entradald. Sovint s'anomena enllaç parcial . Com a efecte secundari, en entorns que admeten números de màgia estàndard de Unix, aquesta opció també estableix el número màgic del fitxer de sortida a "OMAGIC". Si no s'especifica aquesta opció, es produeix un fitxer absolut. Al vincular els programes C + +, aquesta opció no ho farà resoldre referències als constructors; per fer-ho, utilitzeu-Ur. Quan un fitxer d'entrada no té el mateix format que el fitxer de sortida, només es permet l'enllaç parcial si aquest fitxer d'entrada no conté cap tipus de reubicació. Els diferents formats de sortida poden tenir restriccions addicionals; per exemple, alguns formats basats en "a.out" no admeten enllaços parcials amb fitxers d'entrada en altres formats. Aquesta opció fa el mateix que-i. -R nom de l'arxiu --just-symbols = nom de l'arxiu Llegeix noms de símbols i les seves adreces de nom de l'arxiu , però no la traslladi ni incloeu-la a la sortida. Això permet que el fitxer de sortida es faci referència simbòlicament a ubicacions absolutes de memòria definides en altres programes. Podeu utilitzar aquesta opció més d'una vegada. Per compatibilitat amb altres enllaços ELF, si el-R L 'opció és seguida d' un nom de directori, en comptes d 'un nom de fitxer, es tracta com a-rpath opció. -s --queu-tot Omet tota la informació del símbol del fitxer de sortida. -S --Strip-debug Omet la informació del símbol del depurador (però no tots els símbols) del fitxer de sortida. -t --trace Imprimiu els noms dels fitxers d'entrada com ald els processa. -T fitxer de guions --script = fitxer de guions Ús fitxer de guions com a script d'enllaçador. Aquest script reemplaçaldEl guió d'enllaçador predeterminat (en lloc d'afegir-hi), així que fitxer de comandaments ha d'especificar tot el necessari per descriure el fitxer de sortida. Si fitxer de guions no existeix en el directori actual, "ld" ho busca en els directoris especificats per qualsevol precedent-L opcions. Múltiple-T les opcions s'acumulen. -u símbol - undefined = símbol Força símbol per ingressar al fitxer de sortida com a símbol no definit. Fer això pot, per exemple, activar l'enllaç de mòduls addicionals a les biblioteques estàndard.-u es pot repetir amb diferents arguments d'opció per introduir símbols no definits addicionals. Aquesta opció és equivalent a la comanda del scanner de l'enllaç "EXTERN". -Ur Per a qualsevol altra cosa que els programes de C + +, aquesta opció és equivalent a-r: genera sortida relocable, és a dir, un fitxer de sortida que, al seu torn, pot servir d'entradald. En enllaçar programes de C + +,-Ur ho fa resoldre referències als constructors, a diferència-r. No funciona per utilitzar-Ur en fitxers amb els quals es relacionaven-Ur; una vegada que s'ha construït la taula de constructors, no es pot afegir. Ús-Ur només per a l'últim enllaç parcial, i-r per als altres. --unique = SECCIÓ Crea una secció de sortida independent per a cada entrada que coincideixi amb la secció SECCIÓ , o si el comodí opcional SECCIÓ falta l'argument, per a cada apartat d'entrada orfe. Una secció orfe és una que no s'especifica específicament en un script d'enllaçador. Podeu utilitzar aquesta opció diverses vegades a la línia d'ordres; Impedeix la fusió normal de les seccions d'entrada amb el mateix nom, substituint les assignacions de seccions de sortida en un script d'enllaçador. -v --version -V Mostra el número de versió per ald. El-V L'opció també inclou les emulacions compatibles. -x - descàrrega-tot Suprimeix tots els símbols locals. -X - disciscadors-locals Suprimeix tots els símbols locals temporals. Per a la majoria dels objectius, tots són símbols locals amb els quals comencen els nomsL. -y símbol --trace-symbol = símbol Imprimiu el nom de cada fitxer enllaçat en què símbol apareix. Aquesta opció es pot donar diverses vegades. En molts sistemes és necessari prependar un guió baix. Aquesta opció és útil quan teniu un símbol indefinit al vostre enllaç, però no sé d'on prové la referència. -Y Camí Afegeix Camí a la ruta de cerca predeterminada de la biblioteca. Aquesta opció existeix per a la compatibilitat amb Solaris. -z paraula clau Les paraules clau reconegudes són "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "now", "origin", "combreloc", "nocombreloc" i "nocopyreloc" ". Les altres paraules clau s'ignoren per a la compatibilitat amb Solaris. "initfirst" marca l'objecte que s'ha d'inicialitzar primer en temps d'execució abans que altres objectes."interpose" marca l'objecte que la taula de símbols s'interposa abans que tots els símbols, però l'executable principal. "loadfltr" marca l'objecte que els seus fitxers es processen immediatament en temps d'execució. "nodefaultlib" marca l'objecte que la recerca de dependències d'aquest objecte ignorarà Totes les rutes de cerca predeterminades de la biblioteca. "nodelete" indica que l'objecte no s'ha de descarregar en temps d'execució. "nodlopen" marca l'objecte no disponible per "dlopen". "nodump" indica que l'objecte "dldump" no pot ser objecte d'eliminació. "ara" marca l'objecte amb l'enllaç de temps d'execució no perezoso. "origen" marca que l'objecte pot contenir $ ORIGIN. "defs" no permet els símbols no definits. "muldefs" permet definicions múltiples. "combreloc" combina diverses seccions de reloc i ordena-les perquè la memòria cau de cerca de símbols dinàmics sigui possible. "nocombreloc" desactiva múltiples combinacions de reloc. "nocopyreloc" desactiva la producció de còpies relocs. -( arxius -) - grup inicial arxius --en grup El arxius ha de ser una llista d'arxius. Poden ser noms de fitxer explícits, o bé-lopcions. Els arxius especificats es busquen repetidament fins que no es creen referències no definides noves. Normalment, un arxiu es busca només una vegada en l'ordre que s'especifica a la línia d'ordres. Si es necessita un símbol en aquest arxiu per resoldre un símbol indefinit referit per un objecte en un arxiu que apareix més endavant a la línia d'ordres, el vinculador no podria resoldre aquesta referència. En agrupar els arxius, tots es busquen en diverses ocasions fins que es resolguin totes les referències possibles. L'ús d'aquesta opció té un cost de rendiment important. El millor és utilitzar-ho només quan hi hagi referències circulars inevitables entre dos o més arxius. --accept-unknown-input-arch --no-accept-unknown-input-arch Indica al vinculador que accepti fitxers d'entrada l'arquitectura no es pugui reconèixer. La suposició és que l'usuari sap el que està fent i deliberadament vol enllaçar en aquests fitxers d'entrada desconeguts. Aquest va ser el comportament predeterminat del vinculador, abans de l'alliberament 2.14. El comportament predeterminat de la versió 2.14 en endavant és rebutjar aquests fitxers d'entrada i, per tant, el--accept-unknown-input-arch S'ha afegit l'opció per restablir el comportament anterior. -assert paraula clau Aquesta opció s'ignora per a la compatibilitat de SunOS. -Bynamic -dy -call_shared Enllaç contra biblioteques dinàmiques. Això només és significatiu en plataformes per a les quals es permeten biblioteques compartides. Aquesta opció normalment és la predeterminada en aquestes plataformes. Les diferents variants d'aquesta opció són compatibles amb diversos sistemes. Podeu utilitzar aquesta opció diverses vegades a la línia d'ordres: afecta la cerca de la biblioteca-l opcions que la segueixen. -B grup Establiu l'indicador "DF_1_GROUP" a l'entrada "DT_FLAGS_1" a la secció dinàmica. Això fa que l'enllaçador en temps d'execució gestioni les cerques d'aquest objecte i les seves dependències es realitzin només dins del grup.--no-indefinit està implicat. Aquesta opció només té sentit en les plataformes ELF que admeten les biblioteques compartides. -Bàsic -dn -no s'ha compartit -estàtic No es vinculi amb les biblioteques compartides. Això només és significatiu en plataformes per a les quals es permeten biblioteques compartides. Les diferents variants d'aquesta opció són compatibles amb diversos sistemes. Podeu utilitzar aquesta opció diverses vegades a la línia d'ordres: afecta la cerca de la biblioteca-l opcions que la segueixen. -Bsymbolic Quan creeu una biblioteca compartida, uniu referències a símbols globals a la definició de la biblioteca compartida, si n'hi ha. Normalment, és possible que un programa vinculat a una biblioteca compartida anul·li la definició dins de la biblioteca compartida. Aquesta opció només té sentit en ELFplatforms que admeten biblioteques compartides. --check-sections --no-check-sections Demana al vinculador no per comprovar les adreces de la secció després d'haver estat assignades per veure si hi ha superposicions. Normalment, el vinculador realitzarà aquesta verificació i, si troba cap superposició, produirà missatges d'error adequats. El vinculador sap, i fa subvencions per a les seccions en superposicions. El comportament predeterminat es pot restaurar usant l'interruptor de línia d'ordres--check-sections. --ref Feu una taula de referència creuada. Si s'està generant un fitxer del mapa del vinculador, la taula de referència creuada s'imprimeix al fitxer del mapa. En cas contrari, s'imprimeix a la sortida estàndard. El format de la taula és intencionalment senzill, de manera que es pot processar fàcilment mitjançant un script, si és necessari. Els símbols s'imprimeixen, ordenats per nom. Per cada símbol, es proporciona una llista de noms de fitxer. Si el símbol està definit, el primer fitxer que es mostra és la ubicació de la definició. Els fitxers restants contenen referències al símbol. --no-define-common Aquesta opció inhibeix l'assignació d'adreces als símbols comuns. La comanda script "INHIBIT_COMMON_ALLOCATION" té el mateix efecte. El--no-define-common L'opció permet desacoblar la decisió d'assignar adreces als símbols comuns a partir de l'elecció del tipus de fitxer de sortida; en cas contrari un tipus de sortida no relocatable obliga a assignar adreces als símbols comuns. Utilitzant--no-define-common permet que els símbols comuns que es facin referència des d'una biblioteca compartida s'assignin adreces només al programa principal. Això elimina l'espai duplicat no utilitzat a la biblioteca compartida i també evita qualsevol possible confusió sobre la resolució del duplicat equivocat quan hi ha molts mòduls dinàmics amb rutes de cerca especialitzades per a la resolució de símbols d'execució. --defsym símbol = expressió Creeu un símbol global al fitxer de sortida, que contingui l'adreça absoluta proporcionada per expressió . Podeu utilitzar aquesta opció tantes vegades com sigui necessari per definir diversos símbols a la línia d'ordres. Una forma limitada d 'aritmètica és compatible amb la expressió en aquest context: podeu donar una constant hexadecimal o el nom d'un símbol existent, o usar "+" i "-" per afegir o restar constants o símbols hexadecimals. Si necessiteu expressions més elaborades, considereu utilitzar l'idioma d'ordres del vinculador d'un script. Nota: no hauria d'haver espai en blanc entre símbol , el signe igual (``=''), i expressió . --demanxe = estil --no-demangle Aquestes opcions controlen si es demana noms de símbols en missatges d'error i altres resultats. Quan el vinculador es diu que demangle, intenta presentar noms de símbols de manera llegible: elimina els guions baixos principals si són utilitzats pel format d'arxiu d'objecte i converteix noms de símbols manejats de C + + en noms llegibles pels usuaris. Els diferents compiladors tenen diferents estils de mangle. L'argument opcional d'estil diferenciador es pot utilitzar per triar un estil demangling adequat per al vostre compilador. El vincle es desenvolupa de forma predeterminada a menys que la variable d'entornCOLLECT_NO_DEMANGLE està configurat. Aquestes opcions es poden utilitzar per substituir el valor predeterminat. - enllaçador dinàmic dossier Estableix el nom de l'enllaçador dinàmic. Això només té sentit quan es generen executables ELF enllaçats dinàmicament. L'enllaçador dinàmic predeterminat normalment és correcte; No utilitzeu això a menys que sàpigues el que estàs fent. - relocats-relocs Aquesta opció només té sentit quan es vincula el codi PIC incrustat de MIPS, generat per l'opció -membedded-pic al compilador i assemblador GNU. Fa que el vinculador creï una taula que es pugui utilitzar en temps d'execució per reubicar qualsevol dada inicialitzada estàticament als valors de punter. Vegeu el codi en testsuite / ld-empic per obtenir-ne més detalls. - avisos fatals Tractar totes les advertències com a errors. --force-exe-suffix Assegureu-vos que un fitxer de sortida tingui un sufix .exe. Si un fitxer de sortida totalment enllaçat amb èxit no té un sufix ".exe" o ".dll", aquesta opció obliga al vinculador a copiar el fitxer de sortida a un del mateix nom amb el sufix ".exe". Aquesta opció és útil quan s'utilitzen fitxers de fitxers Unix modificats en un host de Microsoft Windows, ja que algunes versions de Windows no executaran una imatge tret que acabi en un sufix ".exe". --no-gc-sections - seccions-gc Activa la recollida d'elements no utilitzats de les seccions d'entrada no utilitzades. S'ignora els objectius que no admet aquesta opció. Aquesta opció no és compatible amb-r, ni s'hauria d'utilitzar amb enllaços dinàmics. El comportament predeterminat (de no realitzar aquesta recollida de deixalles) es pot restaurar especificant--no-gc-sections a la línia d'ordres. - ajuda Imprimiu un resum de les opcions de la línia d'ordres a la sortida estàndard i surti. --target-help Imprimiu un resum de totes les opcions específiques de destinació a la sortida estàndard i surti. -Mapa mapfile Imprimiu un mapa d'enllaç al fitxer mapfile . Vegeu la descripció de la-M opció anterior. --no-keep-memory ld normalment optimitza la velocitat de l'ús de la memòria mitjançant la memòria cau de les taules de símbols dels fitxers d'entrada. Aquesta opció indicald Per optimitzar l'ús de la memòria, reescriu les taules de símbols segons sigui necessari. Això pot ser necessari sild es queda sense espai de memòria mentre es vincula un gran executable. --no-indefinit -z defs Normalment, quan es crea una biblioteca compartida no simbòlica, els símbols no definits estan permesos i deixats de ser resolts pel carregador de temps d'execució. Aquestes opcions no permeten els símbols no definits. --allow-multiple-definition -z muldefs Normalment, quan un símbol es defineix diverses vegades, el vinculador informarà d'un error fatal. Aquestes opcions permeten definicions múltiples i s'utilitzarà la primera definició. --allow-shlib-undefined Permet els símbols no definits en els objectes compartits fins i tot quan --no-undefined s'estableix. El resultat net serà que els símbols no definits en objectes regulars encara activaran un error, però s'ignoraran els símbols indefinits en els objectes compartits. La implementació de no_undefined fa que s'assumeixi que el vinculador de temps d'execució s'ocuparà de símbols indefinits. Tanmateix, hi ha almenys un sistema (BeOS) on símbols indefinits a les biblioteques compartides són normals ja que el nucli els fa un parell de temps de càrrega per seleccionar quina funció és la més adequada per a l'arquitectura actual. I.E. seleccioneu dinàmicament una funció de memset apropiada. Pel que sembla, també és normal que les biblioteques compartides d'HPPA tinguin símbols indefinits. --no-undefined-version Normalment, quan un símbol té una versió no definida, el vinculador ho ignorarà. Aquesta opció no permet els símbols amb una versió no definida i s'emetrà un error greu. --no-warn-mismatch Normalmentld donarà un error si intenteu enllaçar fitxers d'entrada que no coincideixen per alguna raó, potser perquè s'han compilat per a diferents processadors o per a diferents versions. Aquesta opció indicald que en silenci permeti possibles errors. Aquesta opció només s'ha d'utilitzar amb cura, en els casos en què hagi pres mesures especials que garanteixin que els errors del vinculador no siguin adequats. --no-whole-archive Desactivi l'efecte de la- tot l'arxiu opció per a fitxers de fitxers posteriors. --noinhibit-exec Conserveu el fitxer de sortida executable sempre que es pugui utilitzar.Normalment, el vinculador no produirà un fitxer de sortida si troba errors durant el procés d'enllaç; surt sense escriure un fitxer de sortida quan emeti cap error. -nostdlib Només cerqueu directoris de biblioteca especificats explícitament a la línia d'ordres. Els directoris de biblioteca especificats en les seqüències d'ordres del vinculador (incloses les seqüències d'enllaços especificades a la línia d'ordres) s'ignoren. --format format de sortida ld es pot configurar per suportar més d'un tipus d'arxiu d'objectes. Si el teuld està configurat d'aquesta manera, podeu utilitzar el--format opció per especificar el format binari del fitxer d'objectes de sortida. Fins i tot quanld està configurat per suportar formats d'objectes alternatius, normalment no necessiteu especificar-ho, comld s'hauria de configurar per produir com a format de sortida predeterminat el format més habitual en cada màquina. format de sortida és una cadena de text, el nom d'un format particular suportat per les biblioteques BFD. (Podeu llistar els formats binaris disponibles ambobjdump -i). La seqüència de comandaments "OUTPUT_FORMAT" també pot especificar el format de sortida, però aquesta opció l'anul·la. -qmagic Aquesta opció s'ignora per a la compatibilitat de Linux. -Qy Aquesta opció s'ignora per a la compatibilitat SVR4. --relax Una opció amb efectes dependents de la màquina. Aquesta opció només és compatible amb uns quants objectius. En algunes plataformes, el--relax opció realitza optimitzacions globals que es fan possibles quan el vinculador resol adreçar-se al programa, com ara modes de direcció relaxants i sintetitzant noves instruccions al fitxer d'objectes de sortida. En algunes plataformes, aquestes optimitzacions globals de temps d'enllaç poden fer impossible la depuració simbòlica de l'executable resultant. Aquest és el cas de la família de processadors Matsushita MN10200 i MN10300. En plataformes on no s'admet,--relax s'accepta, però ignorat. - retenir-símbols-arxiu nom de l'arxiu Retenir només els símbols que figuren en el fitxer nom de l'arxiu , descartant a tots els altres. nom de l'arxiu és simplement un fitxer pla, amb un nom de símbol per línia. Aquesta opció és especialment útil en entorns (com VxWorks), on una gran taula de símbols global s'acumula gradualment, per conservar la memòria en temps d'execució. - retenir-símbols-arxiu ho fa no descartar símbols indefinits o símbols necessaris per a les reubicacions. Només podeu especificar- retenir-símbols-arxiu una vegada a la línia d'ordres. Invalida-s i-S. -rpath dir Afegiu un directori a la ruta de cerca de la biblioteca d'execució. Això s'utilitza quan es vincula un ELFexecutable amb objectes compartits. Tots-rpath els arguments es concatenen i passen a l'enllaç del temps d'execució, que els utilitza per localitzar objectes compartits en temps d'execució. El-rpath L'opció també s'utilitza quan es localitzen objectes compartits que són necessaris per objectes compartits inclosos explícitament en l'enllaç; vegeu la descripció de la-rpath-link opció. Si-rpath no s'utilitza quan es vincula un executable ELF, s'utilitzarà el contingut de la variable d'entorn "LD_RUN_PATH" si es defineix. El-rpath L'opció també es pot utilitzar a SunOS. De manera predeterminada, a SunOS, el vinculador formarà un pedaç de cerca en temps d'execució de tot-L opcions que s'ofereixen. Si a-rpath s'utilitza l'opció, la ruta d'accés en temps d'execució es crearà exclusivament mitjançant el-rpath opcions ignorant el-Lopcions. Això pot ser útil quan s'utilitza gcc, que afegeix moltes-L opcions que poden ser sistemes de fitxers muntats a NFS. Per compatibilitat amb altres enllaços ELF, si el-R L 'opció és seguida d' un nom de directori, en comptes d 'un nom de fitxer, es tracta com a-rpath opció. -rpath-link DIR En utilitzar ELF o SunOS, una biblioteca compartida pot requerir una altra. Això succeeix quan un enllaç "ld-shared" inclou una biblioteca compartida com un dels fitxers d'entrada. Quan el vinculador troba aquesta dependència quan fa un enllaç no compartit i no relocatable, intentarà localitzar automàticament la biblioteca compartida requerida i incloure'l al'enllaç, si no s'inclou explícitament. En aquest cas, el-rpath-link opció especifica el primer conjunt de directoris a cercar. El-rpath-link L'opció pot especificar una seqüència de noms de directori especificant una llista de noms separats per colons o apareixent diverses vegades. Aquesta opció s'ha d'utilitzar amb precaució, ja que invalida la ruta de cerca que potser s'ha compilat dur a una biblioteca compartida. En aquest cas, és possible utilitzar involuntàriament una ruta de cerca diferent de la que farà el vinculat en temps d'execució. El vinculador utilitza les següents rutes de cerca per localitzar les biblioteques compartides requerides. 1. Qualsevol directori especificat per-rpath-link opcions. 2. Qualsevol directori especificat per-rpath opcions. La diferència entre-rpath i-rpath-link és que els directoris especificats per-rpath Les opcions s'inclouen a l'executable i s'utilitzen en temps d'execució, mentre que les opcions-rpath-link L'opció només és efectiva en el moment de l'enllaç. Només és per al vinculador natiu. 3. En un sistema ELF, si el-rpath i les opcions "rpath-link" no s'han utilitzat, cerqueu el contingut de la variable d'entorn "LD_RUN_PATH". Només és per al vinculador natiu. 4. A SunOS, si el-rpath No s'ha utilitzat l'opció, cerqueu els directoris especificats mitjançant-L opcions. 5. Per a un enllaçador natiu, el contingut de la variable d'entorn "LD_LIBRARY_PATH". 6. Per a un enllaç natiu ELF, es busquen les biblioteques compartides que necessiten els directoris de "DT_RUNPATH" o "DT_RPATH" d'una biblioteca compartida.Les entrades "DT_RPATH" s'ignoren si hi ha entrades "DT_RUNPATH". 7. Els directoris predeterminats, normalment / Lib i / usr / lib . 8. Per a un enllaçador natiu en un sistema ELF, si el fitxer /etc/ld.so.conf existeix, la llista de directoris trobats en aquest fitxer. Si no es troba la biblioteca compartida necessària, el vinculador emetrà un avís i continuarà amb l'enllaç. -shared -Bs comprensible Crea una biblioteca compartida. Actualment només s'admet en plataformes ELF, XCOFF i SunOS. A SunOS, el vinculador crearà automàticament una biblioteca compartida si la-e l'opció no s'utilitza i hi ha símbols no definits a l'enllaç. --sort-comú Aquesta opció indicald ordenar els símbols comuns per mida quan els col·loca a les seccions de sortida adequades. Primer vénen tots els símbols d'un byte, tots dos bytes, després tots els quatre bytes, i després tota la resta. Això és per prevenir llacunes entre símbols a causa de restriccions d'alineació. --split-by-file mida Semblant a--split-per-reloc però crea una nova secció de sortida per a cada fitxer d'entrada quan mida s'aconsegueix. mida per defecte a una mida de 1 si no es dóna. --split-by-reloc comptar Intenta crear seccions addicionals al fitxer de sortida de manera que no hi hagi més que una secció de sortida única del fitxer comptar reubicacions Això és útil quan es generen fitxers relocables enormes per a la seva descàrrega en certs nuclis en temps real amb el format del fitxer de l'objecte COFF; ja que COFFcannot representa més de 65535 reubicacions en una única secció. Tingueu en compte que això no funcionarà amb formats d'arxiu d'objectes que no admeten seccions arbitràries. El vinculador no dividirà les seccions d'entrada individuals per a la redistribució, de manera que si una sola entrada conté més d'una comptar Les relocacions d'una secció de sortida contenen moltes relocacions. comptar per defecte per un valor de 32768. - Estats Comproveu i mostreu estadístiques sobre el funcionament del vinculador, com ara el temps d'execució i l'ús de la memòria. - format tradicional Per a alguns objectius, la sortida deld és diferent en certa manera de la sortida d'algun enllaçador existent. Aquest canvi sol·licitald per fer servir el format tradicional. Per exemple, a SunOS,ld combina entrades duplicades a la taula de cadenes de símbols. Això pot reduir la mida d'un fitxer de sortida amb informació completa de depuració en un 30 per cent. Malauradament, el programa "dbx" de SunOS no pot llegir el programa resultant ("gdb" no té problemes). El- format tradicional l'interruptor explicald per no combinar entrades duplicades. - secció-inici nom de secció = org Localitzeu una secció en el fitxer de sortida a l'adreça absoluta proporcionada per org . Podeu utilitzar aquesta opció tantes vegades com sigui necessari per ubicar diverses seccions a la línia d'ordres. org ha de ser un enter sencer hexadecimal; Per compatibilitat amb altres enllaçadors, podeu ometre els principals0x Normalment s'associa amb valors hexadecimals. Nota: no hauria d'haver espai en blanc entre nom de secció , el signe igual (``=''), i org . -Tbss org -Tata org -Textual org Ús org com a adreça inicial per a ---, respectivament: "bss", "dades" o el segment "text" del fitxer de sortida. org ha de ser un enter sencer hexadecimal; Per compatibilitat amb altres enllaçadors, podeu ometre els principals0x Normalment s'associa amb valors hexadecimals. --dll-verbose --verbose Mostra el número de versió per ald i llista les emulacions del vinculador compatibles. Mostra quins fitxers d'entrada es poden o no poden obrir. Mostra el script del vinculador que utilitza el vinculador. --version-script = fitxer de versió-script Especifiqueu el nom d'una seqüència de comandaments de versió al vinculador. Normalment, s'utilitza quan es creen biblioteques compartides per especificar informació addicional sobre la jerarquia de la versió per crear la biblioteca. Aquesta opció només té sentit en les plataformes ELF que admeten les biblioteques compartides. -un comú Avisar quan un símbol comú es combina amb un altre símbol comú o amb una definició de símbol. Els enllaços Unix permeten aquesta pràctica una mica descuidada, però els enllaçadors d'altres sistemes operatius no ho fan. Aquesta opció us permet trobar possibles problemes per combinar símbols globals. Malauradament, algunes biblioteques C utilitzen aquesta pràctica, de manera que pot obtenir algunes advertències sobre símbols a les biblioteques, així com als vostres programes. Hi ha tres tipus de símbols globals, il·lustrats aquí per exemples de C: int i = 1; Una definició, que es troba a la secció de dades inicialitzada del fitxer de sortida. extern int i; Una referència indefinida, que no assigna espai. Hi ha d'haver una definició o un símbol comú per a la variable en algun lloc. int i; Un símbol comú. Si només hi ha (un o més) símbols comuns per a una variable, es passa a l'àrea de dades no inicialitzada del fitxer de sortida. El vinculador combina diversos símbols comuns per a la mateixa variable en un sol símbol. Si són de mides diferents, tria la mida més gran. El vinculador converteix un símbol comú en una declaració, si hi ha una definició de la mateixa variable. El-un comú L'opció pot produir cinc tipus d'advertències. Cada advertència consisteix en un parell de línies: el primer descriu el símbol que acabem de trobar, i el segon descriu el símbol anterior trobat amb el mateix nom. Un o dos dels dos símbols serà un símbol comú. 1. Convertint un símbol comú en una referència, ja que ja hi ha una definició del símbol. (): avís: comú de `'reemplaçat per definició (): avís: definit aquí2. Convertint un símbol comú en una referència, perquè es troba una definició posterior del símbol. Això és el mateix que el cas anterior, excepte que els símbols es troben en un ordre diferent. (): advertència: definició de `'reemplaçament comú (): advertència: comú és aquí3. Combinant un símbol comú amb un símbol comú anterior anterior. (): advertència: múltiple comú de `' (): avís: anterior és comú aquí4. Combinant un símbol comú amb un símbol comú anterior anterior. (): avís: comú de `'reemplaçat per un comú més gran (): advertència: més gran és comú aquí5. Fusionar un símbol comú amb un símbol comú anterior anterior. Això és el mateix que el cas anterior, excepte que els símbols es troben en un ordre diferent. (): avís: comú de `'reemplaçament més petit comú (): advertència: més petit és comú aquíconstructors Adverteu si s'utilitzen els constructors globals. Això només és útil per a alguns formats d'arxiu d'objectes. Per a formats com COFF o ELF, el vinculador no pot detectar l'ús de constructors globals. --warn-multiple-gp Aviseu si es requereixen múltiples valors de punter global al fitxer de sortida. Això només és significatiu per a certs processadors, c