InglesPransesEspanyol

Ad


OnWorks favicon

h8300-hitachi-coff-ld - Online sa Cloud

Patakbuhin ang h8300-hitachi-coff-ld sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na h8300-hitachi-coff-ld na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


ld - Gamit ang LD, ang GNU linker

SINOPSIS


ld [pagpipilian] objfile ...

DESCRIPTION


ld pinagsasama ang isang bilang ng mga object at archive na file, nililipat ang kanilang data at tinatali ang simbolo
mga sanggunian. Karaniwan ang huling hakbang sa pag-compile ng isang programa ay ang pagtakbo ld.

ld tumatanggap ng Linker Command Language file na nakasulat sa isang superset ng Link Editor ng AT&T
Command Language syntax, upang magbigay ng tahasan at kabuuang kontrol sa proseso ng pag-link.

Hindi inilalarawan ng man page na ito ang command language; tingnan ang ld entry sa "impormasyon", o ang
manual ld: ang GNU linker, para sa buong detalye sa command language at sa iba pang aspeto
ng GNU linker.

Ang bersyong ito ng ld gumagamit ng pangkalahatang layunin na mga aklatan ng BFD upang gumana sa mga object file. Ito
ay nagbibigay-daan sa ld upang basahin, pagsamahin, at isulat ang mga object file sa maraming iba't ibang mga format---para sa
halimbawa, COFF o "a.out". Maaaring iugnay ang iba't ibang mga format upang makagawa ng anuman
magagamit na uri ng object file.

Bukod sa flexibility nito, mas nakakatulong ang GNU linker kaysa sa iba pang linker sa pagbibigay
impormasyon sa diagnostic. Maraming mga linker ang agad na umaalis sa pagpapatupad kapag nakatagpo ng isang
pagkakamali; Kung kailan pwede, ld nagpapatuloy sa pagpapatupad, na nagbibigay-daan sa iyong matukoy ang iba pang mga error
(o, sa ilang mga kaso, upang makakuha ng isang output file sa kabila ng error).

Ang GNU linker ld ay sinadya upang masakop ang isang malawak na hanay ng mga sitwasyon, at upang maging kasing tugma
hangga't maaari sa iba pang mga linker. Bilang resulta, marami kang pagpipilian upang kontrolin ito
pag-uugali.

Opsyon


Sinusuportahan ng linker ang isang kalabisan ng mga pagpipilian sa command-line, ngunit sa aktwal na pagsasanay ilan sa mga ito
ay ginagamit sa anumang partikular na konteksto. Halimbawa, ang madalas na paggamit ng ld ay mag-link
karaniwang Unix object file sa isang standard, suportadong Unix system. Sa ganoong sistema, sa
mag-link ng file na "hello.o":

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

Sinasabi nito ld upang makagawa ng isang file na tinatawag na output bilang resulta ng pag-link ng file
"/lib/crt0.o" na may "hello.o" at ang library na "libc.a", na magmumula sa pamantayan
maghanap ng mga direktoryo. (Tingnan ang talakayan ng -l opsyon sa ibaba.)

Ilan sa mga opsyon sa command-line sa ld maaaring tukuyin sa anumang punto sa command line.
Gayunpaman, ang mga opsyon na tumutukoy sa mga file, tulad ng -l or -T, maging sanhi ng pagbabasa ng file sa
punto kung saan lumilitaw ang opsyon sa command line, na nauugnay sa mga object file at
iba pang mga pagpipilian sa file. Ang pag-uulit ng mga opsyon na hindi file na may ibang argumento ay magkakaroon
walang karagdagang epekto, o i-override ang mga naunang pangyayari (yung mga nasa kaliwa pa sa command
linya) ng opsyong iyon. Ang mga opsyon na maaaring makahulugang tinukoy nang higit sa isang beses ay
nabanggit sa mga paglalarawan sa ibaba.

Ang mga argumentong hindi opsyon ay mga object file o archive na iuugnay. sila
maaaring sundin, mauna, o ihalo sa mga opsyon sa command-line, maliban sa isang object file
Ang argumento ay hindi maaaring ilagay sa pagitan ng opsyon at argumento nito.

Karaniwan ang linker ay hinihingi ng hindi bababa sa isang object file, ngunit maaari mong tukuyin ang iba
mga anyo ng binary input file gamit ang -l, -R, at ang script command language. Kung hindi doble
input file sa lahat ay tinukoy, ang linker ay hindi gumagawa ng anumang output, at naglalabas ng
mensahe Hindi input file.

Kung hindi makilala ng linker ang format ng isang object file, ipagpalagay na ito ay a
linker script. Ang isang script na tinukoy sa paraang ito ay nagpapalaki sa pangunahing linker script na ginamit para sa
ang link (alinman sa default linker script o ang tinukoy sa pamamagitan ng paggamit -T). Ito
pinahihintulutan ng tampok ang linker na mag-link laban sa isang file na lumilitaw na isang bagay o isang
archive, ngunit talagang tumutukoy lamang sa ilang mga halaga ng simbolo, o gumagamit ng "INPUT" o "GROUP" upang
mag-load ng iba pang mga bagay. Tandaan na ang pagtukoy ng isang script sa ganitong paraan ay nagpapalaki lamang sa pangunahing
linker script; gamitin ang -T opsyon upang palitan ang default na script ng linker nang buo.

Para sa mga opsyon na ang mga pangalan ay iisang titik, dapat sundin ng mga argumento ng opsyon ang
opsyon na sulat nang hindi nakikialam sa whitespace, o ibigay bilang hiwalay na mga argumento
kaagad na sumusunod sa opsyon na nangangailangan ng mga ito.

Para sa mga opsyon na ang mga pangalan ay maraming letra, alinman sa isang gitling o dalawa ay maaaring mauna sa
pangalan ng opsyon; Halimbawa, -bakas-simbolo at --trace-simbolo ay katumbas. Tandaan---doon
ay isang pagbubukod sa panuntunang ito. Maramihang mga pagpipilian sa titik na nagsisimula sa isang maliit na titik na 'o'
maaari lamang unahan ng dalawang gitling. Ito ay upang mabawasan ang kalituhan sa -o opsyon. Kaya
halimbawa -omagic itinatakda ang pangalan ng output file sa salamangka samantalang --omagic nagtatakda ng NMAGIC
bandila sa output.

Ang mga argumento sa maramihang-titik na mga opsyon ay dapat na ihiwalay sa pangalan ng opsyon sa pamamagitan ng isang
katumbas ng tanda, o ibigay bilang hiwalay na mga argumento kaagad kasunod ng opsyon na
nangangailangan ng mga ito. Halimbawa, --trace-simbolo foo at --trace-symbol=foo katumbas.
Ang mga natatanging pagdadaglat ng mga pangalan ng mga opsyon na maramihang titik ay tinatanggap.

Tandaan --- kung ang linker ay ini-invoke nang hindi direkta, sa pamamagitan ng isang compiler driver (hal gcc) pagkatapos
ang lahat ng mga opsyon sa command line ng linker ay dapat na prefix ng -Wl, (o anuman ang nararapat
para sa partikular na driver ng compiler) tulad nito:

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

Ito ay mahalaga, dahil kung hindi man ang compiler driver program ay maaaring tahimik na i-drop ang
mga opsyon sa linker, na nagreresulta sa isang masamang link.

Narito ang isang talahanayan ng mga generic na command line switch na tinatanggap ng GNU linker:

-akeyword
Ang opsyong ito ay suportado para sa HP/UX compatibility. Ang keyword argument ay dapat na isa sa
ang mga string archive, Nagbahagi, O default. -aarchive ay functionally katumbas ng
-Bstatic, at ang iba pang dalawang keyword ay gumaganang katumbas ng -Bdynamic. ito
ang opsyon ay maaaring gamitin kahit ilang beses.

-Aarkitektura
--arkitektura=arkitektura
Sa kasalukuyang paglabas ng ld, ang pagpipiliang ito ay kapaki-pakinabang lamang para sa Intel 960 na pamilya ng
mga arkitektura. Sa ganyan ld pagsasaayos, ang arkitektura tinutukoy ng argumento ang
partikular na arkitektura sa pamilyang 960, na nagpapagana ng ilang mga pananggalang at pagbabago sa
landas sa paghahanap ng archive-library.

Mga paglabas sa hinaharap ng ld maaaring suportahan ang katulad na pag-andar para sa iba pang arkitektura
mga pamilya.

-b input-format
--format=input-format
ld maaaring i-configure upang suportahan ang higit sa isang uri ng object file. Kung ang iyong ld is
na-configure sa ganitong paraan, maaari mong gamitin ang -b opsyon upang tukuyin ang binary na format para sa input
object file na sumusunod sa opsyong ito sa command line. Kahit na ld ay naka-configure
upang suportahan ang mga alternatibong mga format ng object, karaniwang hindi mo kailangang tukuyin ito, bilang ld
dapat i-configure upang asahan bilang default na format ng pag-input ang pinakakaraniwang format sa bawat isa
machine. input-format ay isang text string, ang pangalan ng isang partikular na format na sinusuportahan ng
ang mga aklatan ng BFD. (Maaari mong ilista ang mga available na binary na format gamit ang objdump -i.)

Maaaring gusto mong gamitin ang opsyong ito kung nagli-link ka ng mga file sa isang hindi pangkaraniwang binary
pormat. Maaari mo ring gamitin -b upang tahasang lumipat ng mga format (kapag nagli-link ng mga object file
ng iba't ibang mga format), sa pamamagitan ng pagsasama -b input-format bago ang bawat pangkat ng mga object file
sa isang partikular na format.

Ang default na format ay kinuha mula sa environment variable na "GNUTARGET".

Maaari mo ring tukuyin ang format ng pag-input mula sa isang script, gamit ang command na "TARGET";

-c MRI-commandfile
--mri-script=MRI-commandfile
Para sa pagiging tugma sa mga linker na ginawa ng MRI, ld tumatanggap ng mga script file na nakasulat sa isang
kahaliling, pinaghihigpitang command language, na inilarawan sa MRI Compatible Script Files
seksyon ng GNU ld dokumentasyon. Ipakilala ang mga file ng script ng MRI na may opsyon -c; gamitin
ang -T opsyon na magpatakbo ng mga script ng linker na nakasulat sa pangkalahatang layunin ld scripting
wika. Kung MRI-cmdfile ay wala, ld hinahanap ito sa tinukoy na mga direktoryo
sa pamamagitan ng anumang -L mga pagpipilian.

-d
-dc
-dp Ang tatlong opsyon na ito ay katumbas; maramihang mga form ay suportado para sa compatibility
kasama ang iba pang mga linker. Nagtatalaga sila ng espasyo sa mga karaniwang simbolo kahit na isang relocatable na output
ang file ay tinukoy (na may -r). Ang script command na "FORCE_COMMON_ALLOCATION" ay mayroong
parehong epekto.

-e pagpasok
--entry=pagpasok
paggamit pagpasok bilang tahasang simbolo para sa pagsisimula ng pagpapatupad ng iyong programa, sa halip na
ang default na entry point. Kung walang simbolo na pinangalanan pagpasok, susubukan ng linker na
parang pagpasok bilang isang numero, at gamitin iyon bilang entry address (ang numero ay magiging
binibigyang kahulugan sa base 10; maaari kang gumamit ng nangunguna 0x para sa base 16, o isang nangungunang 0 para sa base
8).

--exclude-libs lib,lib, ...
Tinutukoy ang isang listahan ng mga archive na aklatan kung saan ang mga simbolo ay hindi dapat awtomatiko
na-export. Ang mga pangalan ng aklatan ay maaaring lagyan ng mga kuwit o tutuldok. Tinutukoy
Ang "--exclude-libs ALL" ay nagbubukod ng mga simbolo sa lahat ng archive library mula sa awtomatikong pag-export.
Available lang ang opsyong ito para sa i386 PE na naka-target na port ng linker at para sa ELF
naka-target na mga port. Para sa i386 PE, ang mga simbolo na tahasang nakalista sa isang .def file ay nananatili pa rin
na-export, anuman ang opsyong ito. Para sa mga port na naka-target sa ELF, ang mga simbolo ay apektado nito
ang opsyon ay ituturing na nakatago.

-E
--export-dynamic
Kapag gumagawa ng dynamic na naka-link na executable, idagdag ang lahat ng simbolo sa dynamic na simbolo
mesa. Ang talahanayan ng dynamic na simbolo ay ang hanay ng mga simbolo na makikita mula sa dynamic
mga bagay sa oras ng pagtakbo.

Kung hindi mo gagamitin ang opsyong ito, ang talahanayan ng dynamic na simbolo ay karaniwang naglalaman lamang
ang mga simbolo na iyon na tinutukoy ng ilang dynamic na bagay na binanggit sa link.

Kung gumagamit ka ng "dlopen" upang mag-load ng isang dynamic na bagay na kailangang sumangguni pabalik sa mga simbolo
tinukoy ng programa, sa halip na ilang iba pang pabago-bagong bagay, kung gayon ay malamang
kailangang gamitin ang opsyong ito kapag nili-link ang program mismo.

Maaari mo ring gamitin ang script ng bersyon upang kontrolin kung anong mga simbolo ang dapat idagdag sa
dynamic na simbolo ng talahanayan kung sinusuportahan ito ng format ng output. Tingnan ang paglalarawan ng
--bersyon-script sa @ref{VERSION}.

-EB I-link ang mga big-endian na bagay. Nakakaapekto ito sa default na format ng output.

-ANG I-link ang maliit na-endian na mga bagay. Nakakaapekto ito sa default na format ng output.

-f
--pantulong pangalan
Kapag gumagawa ng ELF shared object, itakda ang panloob na DT_AUXILIARY na field sa
tinukoy na pangalan. Sinasabi nito sa dynamic na linker na ang simbolo ng talahanayan ng ibinahagi
bagay ay dapat gamitin bilang isang pantulong na filter sa talahanayan ng simbolo ng nakabahaging bagay
pangalan.

Kung magli-link ka sa ibang pagkakataon ng isang programa laban sa filter object na ito, kung gayon, kapag pinatakbo mo ang
program, makikita ng dynamic na linker ang field na DT_AUXILIARY. Kung ang dynamic na linker
niresolba ang anumang mga simbolo mula sa bagay na filter, susuriin muna nito kung mayroong a
kahulugan sa ibinahaging bagay pangalan. Kung mayroon man, ito ang gagamitin sa halip na ang
kahulugan sa filter na bagay. Ang nakabahaging bagay pangalan hindi kailangang umiral. Kaya, ang
nakabahaging bagay pangalan maaaring gamitin upang magbigay ng alternatibong pagpapatupad ng ilang
function, marahil para sa pag-debug o para sa partikular na pagganap ng makina.

Maaaring tukuyin ang opsyong ito nang higit sa isang beses. Ang DT_AUXILIARY na mga entry ay malilikha
sa pagkakasunud-sunod kung saan lumilitaw ang mga ito sa command line.

-F pangalan
--filter pangalan
Kapag gumagawa ng ELF shared object, itakda ang panloob na DT_FILTER field sa tinukoy
pangalan. Sinasabi nito sa dynamic na linker na ang simbolo ng talahanayan ng nakabahaging bagay na kung saan
ang ginagawa ay dapat gamitin bilang isang filter sa talahanayan ng simbolo ng nakabahaging bagay
pangalan.

Kung magli-link ka sa ibang pagkakataon ng isang programa laban sa filter object na ito, kung gayon, kapag pinatakbo mo ang
program, makikita ng dynamic na linker ang field na DT_FILTER. Ang dynamic na linker ay
lutasin ang mga simbolo ayon sa talahanayan ng simbolo ng filter na bagay gaya ng dati, ngunit ito
ay talagang magli-link sa mga kahulugan na matatagpuan sa nakabahaging bagay pangalan. Kaya, ang
maaaring gamitin ang filter na object upang pumili ng subset ng mga simbolo na ibinigay ng object
pangalan.

Ginamit ng ilang mas lumang linker ang -F opsyon sa kabuuan ng isang compilation toolchain para sa
pagtukoy ng object-file na format para sa parehong input at output object file. Ang GNU linker
gumagamit ng iba pang mekanismo para sa layuning ito: ang -b, --format, --oformat mga pagpipilian, ang
"TARGET" na utos sa linker script, at ang "GNUTARGET" na environment variable. Ang GNU
hindi papansinin ng linker ang -F opsyon kapag hindi gumagawa ng ELF shared object.

-fini pangalan
Kapag gumagawa ng ELF executable o shared object, tawagan ang NAME kapag ang executable o
ang shared object ay diskargado, sa pamamagitan ng pagtatakda ng DT_FINI sa address ng function. Sa pamamagitan ng
default, ginagamit ng linker ang "_fini" bilang function na tatawagan.

-g Hindi pinansin. Ibinigay para sa pagiging tugma sa iba pang mga tool.

-Ghalaga
--gpsize=halaga
Itakda ang maximum na laki ng mga bagay na i-optimize gamit ang GP register sa laki. ito
ay makabuluhan lamang para sa mga format ng object file tulad ng MIPS ECOFF na sumusuporta sa paglalagay
malaki at maliit na mga bagay sa iba't ibang mga seksyon. Ito ay hindi pinapansin para sa iba pang bagay
mga format ng file.

-hpangalan
-soname=pangalan
Kapag gumagawa ng ELF shared object, itakda ang panloob na field ng DT_SONAME sa tinukoy
pangalan. Kapag ang isang executable ay naka-link sa isang nakabahaging bagay na mayroong field na DT_SONAME,
pagkatapos kapag ang executable ay tumakbo ang dynamic na linker ay susubukan na i-load ang ibinahagi
bagay na tinukoy ng field ng DT_SONAME kaysa sa paggamit ng pangalan ng file na ibinigay sa
ang linker.

-i Magsagawa ng incremental na link (katulad ng opsyon -r).

-sa loob pangalan
Kapag gumagawa ng ELF executable o shared object, tawagan ang NAME kapag ang executable o
na-load ang shared object, sa pamamagitan ng pagtatakda ng DT_INIT sa address ng function. Sa pamamagitan ng
default, ginagamit ng linker ang "_init" bilang function na tatawagan.

-larchive
--library=archive
Magdagdag ng archive file archive sa listahan ng mga file na ili-link. Ang opsyon na ito ay maaaring gamitin kahit anuman
ilang beses. ld hahanapin ang path-list nito para sa mga paglitaw ng "libarchive.a" para
bawat archive tinukoy.

Sa mga system na sumusuporta sa mga shared library, ld maaari ring maghanap ng mga aklatan na may
mga extension maliban sa ".a". Sa partikular, sa mga sistema ng ELF at SunOS, ld maghahanap a
direktoryo para sa isang aklatan na may extension na ".so" bago maghanap ng isa na may
extension ng ".a". Ayon sa convention, ang extension na ".so" ay nagpapahiwatig ng isang nakabahaging library.

Isang beses lang maghahanap ang linker sa isang archive, sa lokasyon kung saan ito tinukoy
ang command line. Kung ang archive ay tumutukoy sa isang simbolo na hindi natukoy sa ilang bagay
na lumabas bago ang archive sa command line, isasama ng linker ang
naaangkop na (mga) file mula sa archive. Gayunpaman, isang hindi natukoy na simbolo sa isang bagay
ang paglitaw sa ibang pagkakataon sa command line ay hindi magiging sanhi ng linker na maghanap sa archive
muli.

Tingnan ang -( opsyon para sa isang paraan upang pilitin ang linker na maghanap ng mga archive nang maraming beses.

Maaari mong ilista ang parehong archive nang maraming beses sa command line.

Ang ganitong uri ng paghahanap sa archive ay pamantayan para sa mga Unix linker. Gayunpaman, kung ikaw ay
paggamit ld sa AIX, tandaan na ito ay iba sa pag-uugali ng AIX linker.

-Lsearchdir
--library-path=searchdir
Magdagdag ng landas searchdir sa listahan ng mga landas na ld maghahanap ng archive library at
ld control script. Maaari mong gamitin ang opsyong ito kahit ilang beses. Ang mga direktoryo ay
hinanap sa pagkakasunud-sunod kung saan sila ay tinukoy sa command line. Mga direktoryo
na tinukoy sa command line ay hinanap bago ang mga default na direktoryo. Lahat -L
naaangkop sa lahat ang mga opsyon -l mga opsyon, anuman ang pagkakasunud-sunod kung saan lumitaw ang mga opsyon.

If searchdir nagsisimula sa "=", pagkatapos ay ang "=" ay papalitan ng sysroot unlapiSa
path na tinukoy kapag ang linker ay na-configure.

Ang default na hanay ng mga landas na hinanap (nang hindi tinukoy sa -L) depende kung alin
mode ng pagtulad ld ay ginagamit, at sa ilang mga kaso din kung paano ito na-configure.

Ang mga path ay maaari ding tukuyin sa isang link script na may "SEARCH_DIR" na utos.
Ang mga direktoryo na tinukoy sa ganitong paraan ay hinahanap sa punto kung saan ang linker script
lalabas sa command line.

-mpagtulad
Tularan ang pagtulad linker. Maaari mong ilista ang mga magagamit na emulasyon sa
--verbose or -V mga pagpipilian.

Kung ang -m hindi ginagamit ang opsyon, ang emulation ay kinuha mula sa "LDEMULATION"
variable ng kapaligiran, kung iyon ay tinukoy.

Kung hindi, ang default na emulation ay depende sa kung paano na-configure ang linker.

-M
--print-map
Mag-print ng link na mapa sa karaniwang output. Ang isang link map ay nagbibigay ng impormasyon tungkol sa
link, kasama ang sumusunod:

* Kung saan ang mga object file at simbolo ay nakamapa sa memorya.

* Paano karaniwang inilalaan ang mga simbolo.

* Lahat ng miyembro ng archive ay kasama sa link, na may pagbanggit ng simbolo na
naging dahilan ng pagdadala ng miyembro ng archive.

-n
--nmagic
I-off ang page alignment ng mga seksyon, at markahan ang output bilang "NMAGIC" kung maaari.

-N
--omagic
Itakda ang mga seksyon ng teksto at data upang maging nababasa at nasusulat. Gayundin, huwag page-align
ang segment ng data, at huwag paganahin ang pag-link laban sa mga nakabahaging aklatan. Kung ang format ng output
sumusuporta sa Unix style magic number, markahan ang output bilang "OMAGIC". Tandaan: Bagama't a
Ang seksyon ng nakasulat na teksto ay pinapayagan para sa mga target na PE-COFF, hindi ito umaayon sa
detalye ng format na inilathala ng Microsoft.

--walang-omagic
Ang pagpipiliang ito ay nagpapawalang-bisa sa karamihan ng mga epekto ng -N opsyon. Itinatakda nito ang seksyon ng teksto sa
maging read-only, at pinipilit na maging page-align ang segment ng data. Tandaan - ginagawa ng pagpipiliang ito
hindi paganahin ang pag-link laban sa mga nakabahaging aklatan. Gamitin -Bdynamic para dito.

-o output
--output=output
paggamit output bilang pangalan para sa programang ginawa ng ld; kung ang pagpipiliang ito ay hindi
tinukoy, ang pangalan a.labas ay ginagamit bilang default. Maaari din ang script command na "OUTPUT".
tukuyin ang pangalan ng output file.

-O antas
If antas ay isang numeric na halaga na mas malaki sa zero ld ino-optimize ang output. Ito ay maaaring
mas matagal at samakatuwid marahil ay dapat lamang paganahin para sa pangwakas
binary.

-q
--emit-relocs
Mag-iwan ng mga seksyon at nilalaman ng relokasyon sa ganap na naka-link na mga executable. Mag-post ng link
Maaaring kailanganin ng mga tool sa pagsusuri at pag-optimize ang impormasyong ito upang maisagawa ang tama
mga pagbabago sa mga executable. Nagreresulta ito sa mas malalaking executable.

Ang opsyong ito ay kasalukuyang sinusuportahan lamang sa mga platform ng ELF.

-r
--relocatable
Bumuo ng relocatable na output---ibig sabihin, bumuo ng isang output file na maaaring magsilbing
input sa ld. Ito ay madalas na tinatawag may pinapanigan pag-uugnay. Bilang isang side effect, sa mga kapaligiran
na sumusuporta sa mga karaniwang Unix magic number, ang opsyong ito ay nagtatakda din ng output file
magic number sa "OMAGIC". Kung ang pagpipiliang ito ay hindi tinukoy, ang isang ganap na file ay
ginawa. Kapag nagli-link ng mga programang C++, ang pagpipiliang ito habilin hindi lutasin ang mga sanggunian sa
mga konstruktor; para gawin iyon, gamitin -Ur.

Kapag ang isang input file ay walang parehong format tulad ng output file, bahagyang pag-link
ay sinusuportahan lamang kung ang input file na iyon ay walang anumang mga relokasyon. magkaiba
maaaring magkaroon ng karagdagang mga paghihigpit ang mga format ng output; halimbawa ilang "a.out"-based na mga format
hindi sumusuporta sa bahagyang pag-link sa mga input file sa iba pang mga format sa lahat.

Ginagawa ng pagpipiliang ito ang parehong bagay bilang -i.

-R filename
--just-symbols=filename
Basahin ang mga pangalan ng simbolo at ang kanilang mga address mula sa filename, ngunit huwag itong ilipat o isama
ito sa output. Binibigyang-daan nito ang iyong output file na sumangguni sa simboliko sa ganap
mga lokasyon ng memorya na tinukoy sa ibang mga programa. Maaari mong gamitin ang opsyong ito nang higit sa
isang beses.

Para sa pagiging tugma sa iba pang mga linker ng ELF, kung ang -R ang opsyon ay sinusundan ng isang direktoryo
pangalan, sa halip na isang pangalan ng file, ito ay itinuturing bilang ang -rpath pagpipilian.

-s
--strip-lahat
Alisin ang lahat ng impormasyon ng simbolo mula sa output file.

-S
--strip-debug
Alisin ang impormasyon ng simbolo ng debugger (ngunit hindi lahat ng simbolo) mula sa output file.

-t
--bakas
I-print ang mga pangalan ng mga input file bilang ld pinoproseso ang mga ito.

-T scriptfile
--script=scriptfile
paggamit scriptfile bilang linker script. Pinapalitan ang script na ito lddefault linker script ni
(sa halip na magdagdag dito), kaya commandfile dapat tukuyin ang lahat ng kailangan
ilarawan ang output file. Kung scriptfile ay wala sa kasalukuyang direktoryo,
Hinahanap ito ng "ld" sa mga direktoryo na tinukoy ng alinmang nauna -L mga pagpipilian. Maramihan
-T maipon ang mga opsyon.

-u simbolo
--undefined=simbolo
Pilitin simbolo na maipasok sa output file bilang isang hindi natukoy na simbolo. Ang paggawa nito ay maaaring,
halimbawa, trigger linking ng mga karagdagang module mula sa karaniwang mga library. -u maaaring hindi
paulit-ulit na may iba't ibang mga argumento ng opsyon upang magpasok ng mga karagdagang hindi natukoy na simbolo. Ito
ang opsyon ay katumbas ng "EXTERN" linker script command.

-Ur Para sa anumang bagay maliban sa mga programang C++, ang pagpipiliang ito ay katumbas ng -r: ito ay bumubuo
relocatable na output---ibig sabihin, isang output file na maaari namang magsilbi bilang input sa ld. Kailan
pag-uugnay ng mga programang C++, -Ur ang lutasin ang mga sanggunian sa mga konstruktor, hindi katulad -r. ginagawa nito
hindi gumagana para gamitin -Ur sa mga file na mismong naka-link -Ur; sabay ang
constructor table ay binuo, hindi ito maaaring idagdag sa. Gamitin -Ur para lamang sa huli
bahagyang link, at -r para sa iba.

--natatangi[=SEKSYON]
Lumilikha ng isang hiwalay na seksyon ng output para sa bawat pagtutugma ng seksyon ng input SEKSYON, o kung ang
opsyonal na wildcard SEKSYON Nawawala ang argumento, para sa bawat seksyon ng pag-input ng ulila. An
Ang orphan section ay isa na hindi partikular na binanggit sa isang linker script. Maaari mong gamitin ito
opsyon nang maraming beses sa command line; Pinipigilan nito ang normal na pagsasama ng input
mga seksyon na may parehong pangalan, na nag-o-override sa mga pagtatalaga ng seksyon ng output sa isang script ng linker.

-v
--bersyon
-V Ipakita ang numero ng bersyon para sa ld. ang -V Inililista din ng opsyon ang mga sinusuportahang emulasyon.

-x
--i-discard-lahat
Tanggalin ang lahat ng lokal na simbolo.

-X
--discard-locals
Tanggalin ang lahat ng pansamantalang lokal na simbolo. Para sa karamihan ng mga target, ito ang lahat ng mga lokal na simbolo na
mga pangalan ay nagsisimula sa L.

-y simbolo
--trace-symbol=simbolo
I-print ang pangalan ng bawat naka-link na file kung saan simbolo lilitaw. Maaaring ibigay ang opsyong ito
anumang bilang ng beses. Sa maraming mga sistema kinakailangan na maghanda ng isang salungguhit.

Kapaki-pakinabang ang opsyong ito kapag mayroon kang hindi natukoy na simbolo sa iyong link ngunit hindi mo alam
kung saan nanggagaling ang sanggunian.

-Y landas
Idagdag landas sa default na landas sa paghahanap ng library. Ang opsyon na ito ay umiiral para sa Solaris
compatibility.

-z keyword
Ang mga kinikilalang keyword ay:

combreloc
Pinagsasama-sama ang maraming reloc na seksyon at pinag-uuri-uri ang mga ito upang gumawa ng dynamic na paghahanap ng simbolo
posible ang pag-cache.

defs
Hindi pinapayagan ang mga hindi natukoy na simbolo sa mga object file. Mga hindi natukoy na simbolo sa ibinahagi
pinapayagan pa rin ang mga aklatan.

init muna
Ang pagpipiliang ito ay makabuluhan lamang kapag bumubuo ng isang nakabahaging bagay. Minarkahan nito ang bagay
upang ang runtime initialization nito ay magaganap bago ang runtime initialization ng
anumang iba pang mga bagay na dinala sa proseso sa parehong oras. Katulad din ang
Ang runtime finalization ng object ay magaganap pagkatapos ng runtime finalization ng
anumang iba pang mga bagay.

interpose
Minarkahan ang bagay na inilalagay ng talahanayan ng simbolo nito bago ang lahat ng mga simbolo maliban sa
pangunahing maipapatupad.

loadfltr
Minamarkahan ang bagay na ang mga filter nito ay mapoproseso kaagad sa runtime.

mga muldef
Nagbibigay-daan sa maramihang mga kahulugan.

nocombreloc
Hindi pinapagana ang pagsasama-sama ng maraming reloc na seksyon.

nocopyreloc
Hindi pinapagana ang paggawa ng mga kopyang reloc.

nodefaultlib
Minarkahan ang bagay na ang paghahanap para sa mga dependency ng bagay na ito ay hindi babalewalain ang anuman
default na mga landas sa paghahanap ng library.

nodelete
Markahan ang object na hindi dapat i-unload sa runtime.

nodlopen
Minarkahan ang bagay na hindi magagamit sa "dlopen".

nodump
Markahan ang bagay na hindi maaaring itapon ng "dldump".

ngayon Kapag bumubuo ng isang executable o shared library, markahan ito upang sabihin ang dynamic
linker upang lutasin ang lahat ng mga simbolo kapag nagsimula ang programa, o kapag ibinahagi
naka-link ang library sa paggamit ng dlopen, sa halip na ipagpaliban ang resolution ng function na tawag
hanggang sa punto kung kailan unang tinawag ang function.

pinagmulan
Markahan ang bagay na maaaring maglaman ng $ORIGIN.

Binabalewala ang ibang mga keyword para sa pagiging tugma ng Solaris.

-( arkibos -)
--simulang-grupo arkibos --end-group
Ang arkibos dapat ay isang listahan ng mga archive file. Maaaring ang mga ito ay alinman sa tahasang file
mga pangalan, o -l mga pagpipilian.

Ang mga tinukoy na archive ay paulit-ulit na hinahanap hanggang sa walang bagong hindi natukoy na mga sanggunian
nilikha. Karaniwan, ang isang archive ay hinanap nang isang beses lamang sa pagkakasunud-sunod na ito ay tinukoy
sa command line. Kung ang isang simbolo sa archive na iyon ay kailangan upang malutas ang isang hindi natukoy
simbolo na tinutukoy ng isang bagay sa isang archive na lilitaw sa ibang pagkakataon sa command line,
hindi malulutas ng linker ang reference na iyon. Sa pamamagitan ng pagpapangkat ng mga archive,
lahat sila ay paulit-ulit na hinahanap hanggang sa lahat ng posibleng mga sanggunian ay nalutas.

Ang paggamit sa opsyong ito ay may malaking gastos sa pagganap. Pinakamabuting gamitin lamang ito kapag
may mga hindi maiiwasang circular reference sa pagitan ng dalawa o higit pang archive.

--accept-unknown-input-arch
--no-accept-unknown-input-arch
Sinasabi sa linker na tanggapin ang mga input file na hindi makikilala ang arkitektura. Ang
ang pagpapalagay ay alam ng user kung ano ang kanilang ginagawa at sadyang gustong mag-link
sa mga hindi kilalang input file na ito. Ito ang default na gawi ng linker, dati
release 2.14. Ang default na gawi mula sa release 2.14 pataas ay ang pagtanggi sa naturang input
mga file, at iba pa ang --accept-unknown-input-arch Ang opsyon ay naidagdag upang maibalik ang luma
pag-uugali.

--kung kinakailangan
--hindi-kung-kailangan
Nakakaapekto ang opsyong ito sa mga tag na ELF DT_NEEDED para sa mga dynamic na library na binanggit sa command
linya pagkatapos ng --kung kinakailangan opsyon. Karaniwan, magdaragdag ang linker ng DT_NEEDED tag para sa
bawat dynamic na library na binanggit sa command line, hindi alintana kung ang library
ay talagang kailangan. --kung kinakailangan nagiging sanhi ng DT_NEEDED na mga tag na ilalabas lamang para sa
mga aklatan na nagbibigay-kasiyahan sa ilang sanggunian ng simbolo mula sa mga regular na bagay na hindi natukoy
sa puntong na-link ang library. --hindi-kung-kailangan ibinabalik ang default
pag-uugali.

--idagdag-kailangan
--no-add-needed
Nakakaapekto ang opsyong ito sa paggamot ng mga dynamic na library mula sa ELF DT_NEEDED tags in
mga dynamic na aklatan na binanggit sa command line pagkatapos ng --no-add-needed pagpipilian.
Karaniwan, magdaragdag ang linker ng DT_NEEDED tag para sa bawat dynamic na library mula sa DT_NEEDED
mga tag. --no-add-needed nagiging sanhi ng DT_NEEDED na mga tag ay hindi kailanman ilalabas para sa mga aklatang iyon
mula sa DT_NEEDED tag. --idagdag-kailangan nire-restore ang default na gawi.

- igiit keyword
Binabalewala ang opsyong ito para sa pagiging tugma ng SunOS.

-Bdynamic
-dy
-call_shared
Link laban sa mga dynamic na aklatan. Ito ay makabuluhan lamang sa mga platform kung saan ibinahagi
sinusuportahan ang mga aklatan. Ang opsyong ito ay karaniwang ang default sa naturang mga platform. Ang
iba't ibang variant ng opsyong ito ay para sa compatibility sa iba't ibang system. Maaari mong
gamitin ang opsyong ito nang maraming beses sa command line: nakakaapekto ito sa paghahanap ng library
-l mga opsyon na sumusunod dito.

-Bgroup
Itakda ang flag na "DF_1_GROUP" sa entry na "DT_FLAGS_1" sa dynamic na seksyon. Ito
nagiging sanhi ng runtime linker na pangasiwaan ang mga paghahanap sa bagay na ito at ang mga dependency nito
isinagawa lamang sa loob ng grupo. --unresolved-symbols=report-all ay ipinahiwatig. Ito
Ang opsyon ay makabuluhan lamang sa mga platform ng ELF na sumusuporta sa mga shared library.

-Bstatic
-dn
-non_shared
-static
Huwag mag-link laban sa mga nakabahaging aklatan. Ito ay makabuluhan lamang sa mga platform kung saan
sinusuportahan ang mga shared library. Ang iba't ibang variant ng opsyong ito ay para sa
pagiging tugma sa iba't ibang mga sistema. Maaari mong gamitin ang opsyong ito nang maraming beses sa
command line: nakakaapekto ito sa paghahanap ng library -l mga opsyon na sumusunod dito. Ito
ang opsyon ay nagpapahiwatig din --unresolved-symbols=report-all.

-Simboliko
Kapag gumagawa ng shared library, itali ang mga reference sa mga global na simbolo sa kahulugan
sa loob ng shared library, kung mayroon man. Karaniwan, posible para sa isang program na naka-link
laban sa isang shared library upang i-override ang kahulugan sa loob ng shared library. Ito
Ang opsyon ay makabuluhan lamang sa mga platform ng ELF na sumusuporta sa mga shared library.

--check-seksyon
--no-check-sections
Tanong ng linker hindi upang suriin ang mga address ng seksyon pagkatapos na maitalaga ang mga ito upang makita kung
mayroong anumang magkakapatong. Karaniwang gagawin ng linker ang pagsusuring ito, at kung may mahanap ito
magkakapatong ito ay magbubunga ng angkop na mga mensahe ng error. Alam ng linker ang tungkol sa, at
ay gumagawa ng mga allowance para sa mga seksyon sa mga overlay. Maaaring maibalik ang default na gawi
gamit ang command line switch --check-seksyon.

--cref
Mag-output ng cross reference table. Kung ang isang linker map file ay nabuo, ang cross
Ang reference table ay naka-print sa file ng mapa. Kung hindi, ito ay nakalimbag sa pamantayan
output.

Ang format ng talahanayan ay sadyang simple, upang madali itong maproseso ng
isang script kung kinakailangan. Ang mga simbolo ay naka-print out, pinagsunod-sunod ayon sa pangalan. Para sa bawat simbolo,
isang listahan ng mga pangalan ng file ay ibinigay. Kung tinukoy ang simbolo, ang unang nakalistang file ay ang
lokasyon ng kahulugan. Ang natitirang mga file ay naglalaman ng mga sanggunian sa simbolo.

--no-define-common
Pinipigilan ng opsyong ito ang pagtatalaga ng mga address sa mga karaniwang simbolo. Ang script
Ang command na "INHIBIT_COMMON_ALLOCATION" ay may parehong epekto.

Ang --no-define-common pinapayagan ng opsyon na i-decoupling ang desisyon na magtalaga ng mga address sa
Mga karaniwang simbolo mula sa pagpili ng uri ng output file; kung hindi man ay isang hindi-Relocatable
uri ng output pwersa na nagtatalaga ng mga address sa Karaniwang mga simbolo. Gamit --no-define-common
nagbibigay-daan sa mga Karaniwang simbolo na isinangguni mula sa isang nakabahaging aklatan na maitalaga
mga address lamang sa pangunahing programa. Inaalis nito ang hindi nagamit na duplicate na espasyo sa
shared library, at pinipigilan din ang anumang posibleng pagkalito sa paglutas sa mali
duplicate kapag mayroong maraming mga dynamic na module na may espesyal na mga landas sa paghahanap para sa
resolution ng simbolo ng runtime.

--defsym simbolo=pagpapahayag
Lumikha ng isang pandaigdigang simbolo sa output file, na naglalaman ng ganap na address na ibinigay ni
pagpapahayag. Maaari mong gamitin ang opsyong ito nang maraming beses hangga't kinakailangan upang tukuyin ang maramihan
mga simbolo sa command line. Isang limitadong anyo ng arithmetic ang sinusuportahan para sa
pagpapahayag sa kontekstong ito: maaari kang magbigay ng hexadecimal constant o ang pangalan ng an
umiiral na simbolo, o gamitin ang "+" at "-" upang magdagdag o magbawas ng hexadecimal constants o
mga simbolo. Kung kailangan mo ng mas detalyadong mga expression, isaalang-alang ang paggamit ng linker command
wika mula sa isang script. tandaan: dapat walang puting espasyo sa pagitan simbolo, ang
katumbas ng tanda (``=''), at pagpapahayag.

--demangle[=estilo]
--walang-demangle
Kinokontrol ng mga opsyong ito kung i-demangle ang mga pangalan ng simbolo sa mga mensahe ng error at iba pa
output. Kapag sinabihan ang linker na mag-demangle, sinusubukan nitong ipakita ang mga pangalan ng simbolo sa a
nababasang fashion: tinatanggal nito ang mga nangungunang underscore kung ginagamit ang mga ito ng object file
format, at kino-convert ang C++ na sira-sira na mga pangalan ng simbolo sa mga nababasang pangalan ng user. magkaiba
Ang mga compiler ay may iba't ibang estilo ng mangling. Ang opsyonal na demangling style argument ay maaari
gamitin para pumili ng angkop na istilo ng demangling para sa iyong compiler. Ang linker ay
demangle bilang default maliban kung ang environment variable COLLECT_NO_DEMANGLE ay nakatakda. Ang mga ito
maaaring gamitin ang mga opsyon para i-override ang default.

--dynamic-linker file
Itakda ang pangalan ng dynamic na linker. Ito ay makabuluhan lamang kapag bumubuo
dynamic na naka-link na mga executable ng ELF. Ang default na dynamic na linker ay karaniwang tama;
huwag gamitin ito maliban kung alam mo kung ano ang iyong ginagawa.

--fatal-babala
Tratuhin ang lahat ng mga babala bilang mga pagkakamali.

--force-exe-suffix
Tiyaking may .exe suffix ang isang output file.

Kung ang isang matagumpay na binuo na ganap na naka-link na output file ay walang ".exe" o ".dll"
suffix, pinipilit ng opsyong ito ang linker na kopyahin ang output file sa isa sa parehong pangalan
na may ".exe" na suffix. Ang pagpipiliang ito ay kapaki-pakinabang kapag gumagamit ng hindi binagong Unix makefiles sa isang
Microsoft Windows host, dahil ang ilang bersyon ng Windows ay hindi magpapatakbo ng larawan maliban kung ito
nagtatapos sa isang ".exe" na suffix.

--no-gc-sections
--gc-sections
Paganahin ang koleksyon ng basura ng mga hindi nagamit na seksyon ng input. Ito ay hindi pinapansin sa mga target na ginagawa
hindi sinusuportahan ang opsyong ito. Ang pagpipiliang ito ay hindi tugma sa -r. Ang default na pag-uugali
(ng hindi pagsasagawa ng koleksyon ng basura na ito) ay maaaring maibalik sa pamamagitan ng pagtukoy
--no-gc-sections sa command line.

- Tumulong
Mag-print ng buod ng mga opsyon sa command-line sa karaniwang output at exit.

--target-tulong
Mag-print ng buod ng lahat ng target na partikular na opsyon sa karaniwang output at exit.

-Mapa mapfile
Mag-print ng link na mapa sa file mapfile. Tingnan ang paglalarawan ng -M opsyon, sa itaas.

--walang-ingatang-alaala
ld karaniwang nag-o-optimize para sa bilis sa paggamit ng memory sa pamamagitan ng pag-cache sa mga talahanayan ng simbolo ng
input ng mga file sa memorya. Ang pagpipiliang ito ay nagsasabi ld sa halip ay mag-optimize para sa paggamit ng memorya, sa pamamagitan ng
muling binabasa ang mga talahanayan ng simbolo kung kinakailangan. Maaaring kailanganin ito kung ld naubusan ng
memory space habang nagli-link ng malaking executable.

--no-undefined
-z defs
Mag-ulat ng hindi nalutas na mga sanggunian ng simbolo mula sa mga regular na object file. Ginagawa ito kahit na
ang linker ay lumilikha ng isang hindi simbolikong nakabahaging aklatan. Ang switch
--[no-]allow-shlib-undefined kinokontrol ang pag-uugali para sa pag-uulat na hindi nalutas
mga sanggunian na matatagpuan sa mga shared library na naka-link.

--allow-multiple-definition
-z mga muldef
Karaniwan kapag ang isang simbolo ay tinukoy ng maraming beses, ang linker ay mag-uulat ng isang nakamamatay
pagkakamali. Ang mga opsyon na ito ay nagbibigay-daan sa maramihang mga kahulugan at ang unang kahulugan ay gagamitin.

--allow-shlib-undefined
--no-allow-shlib-undefined
Pinapayagan (ang default) o hindi pinapayagan ang mga hindi natukoy na simbolo sa mga shared library. Itong switch
ay katulad ng --no-undefined maliban na tinutukoy nito ang pag-uugali kapag ang
ang mga hindi natukoy na simbolo ay nasa isang shared library sa halip na isang regular na object file. ginagawa nito
hindi nakakaapekto kung paano pinangangasiwaan ang mga hindi natukoy na simbolo sa mga regular na object file.

Ang dahilan na --allow-shlib-undefined ang default ay ang shared library
na tinukoy sa oras ng pag-link ay maaaring hindi kapareho ng isa na magagamit sa pag-load
oras, kaya maaaring talagang malulutas ang mga simbolo sa oras ng pagkarga. Plus may ilan
system, (hal. BeOS) kung saan normal ang mga hindi natukoy na simbolo sa mga shared library. (Ang kernel
tina-patch ang mga ito sa oras ng pagkarga upang piliin kung aling function ang pinakaangkop para sa kasalukuyang
arkitektura. Ito ay ginagamit halimbawa upang dynamic na pumili ng isang naaangkop na memset
function). Tila normal din para sa mga nakabahaging aklatan ng HPPA na hindi natukoy
mga simbolo.

--no-undefined-version
Karaniwan kapag ang isang simbolo ay may hindi natukoy na bersyon, babalewalain ito ng linker. Ito
hindi pinapayagan ng opsyon ang mga simbolo na may hindi natukoy na bersyon at maglalabas ng nakamamatay na error
sa halip.

--default-symver
Gumawa at gumamit ng default na bersyon ng simbolo (ang soname) para sa hindi na-bersyon na mga na-export na simbolo.

--default-imported-symver
Gumawa at gumamit ng default na bersyon ng simbolo (ang soname) para sa hindi na-bersyon na mga na-import na simbolo.

--no-warn-mismatch
Karaniwan ld ay magbibigay ng error kung susubukan mong i-link nang magkasama ang mga input file na
hindi tugma sa ilang kadahilanan, marahil dahil na-compile ang mga ito para sa iba't ibang dahilan
mga processor o para sa iba't ibang endiannesses. Ang pagpipiliang ito ay nagsasabi ld na dapat
tahimik na pinahihintulutan ang mga posibleng pagkakamali. Ang pagpipiliang ito ay dapat lamang gamitin nang may pag-iingat, sa
mga kaso kapag nagsagawa ka ng ilang espesyal na aksyon na nagsisiguro na ang mga error sa linker ay
hindi naaangkop.

--walang-buong-archive
I-off ang epekto ng --buong-archive opsyon para sa kasunod na mga file ng archive.

--noinhibit-exec
Panatilihin ang executable output file sa tuwing magagamit pa rin ito. Karaniwan, ang linker
ay hindi gagawa ng isang output file kung ito ay nakatagpo ng mga error sa panahon ng proseso ng link; ito
lumalabas nang hindi nagsusulat ng output file kapag nag-isyu ito ng anumang error.

-nostdlib
Maghanap lamang ng mga direktoryo ng library na tahasang tinukoy sa command line. Aklatan
mga direktoryo na tinukoy sa mga script ng linker (kabilang ang mga script ng linker na tinukoy sa
command line) ay hindi pinapansin.

--oformat output-format
ld maaaring i-configure upang suportahan ang higit sa isang uri ng object file. Kung ang iyong ld is
na-configure sa ganitong paraan, maaari mong gamitin ang --oformat opsyon upang tukuyin ang binary na format para sa
ang output object file. Kahit na ld ay naka-configure upang suportahan ang alternatibong bagay
mga format, karaniwang hindi mo kailangang tukuyin ito, bilang ld dapat i-configure upang makagawa
bilang default na format ng output ang pinakakaraniwang format sa bawat makina. output-format ay isang
text string, ang pangalan ng isang partikular na format na sinusuportahan ng mga library ng BFD. (Kaya mo
ilista ang mga magagamit na binary format na may objdump -i.) Ang script command
Ang "OUTPUT_FORMAT" ay maaari ding tukuyin ang output format, ngunit ang pagpipiliang ito ay na-override ito.

-pie
--pic-executable
Lumikha ng isang posisyon na independiyenteng maipapatupad. Ito ay kasalukuyang sinusuportahan lamang sa ELF
mga platform. Ang mga independiyenteng executable sa posisyon ay katulad ng mga shared library doon
nililipat sila ng dynamic na linker sa virtual address na pipiliin ng OS
kanila (na maaaring mag-iba sa pagitan ng mga invocation). Tulad ng mga normal na naka-link na executable
maaari silang isagawa at ang mga simbolo na tinukoy sa executable ay hindi maaaring ma-override ng
mga shared library.

-qmagic
Binabalewala ang opsyong ito para sa Linux compatibility.

-Qy Binabalewala ang opsyong ito para sa compatibility ng SVR4.

--relax
Isang opsyon na may mga epektong nakadepende sa makina. Ang opsyong ito ay sinusuportahan lamang sa iilan
Mga target.

Sa ilang mga platform, ang --relax ang opsyon ay nagsasagawa ng mga pandaigdigang pag-optimize na nagiging
posible kapag nalutas ng linker ang pagtugon sa programa, tulad ng nakakarelaks na address
mode at pag-synthesize ng mga bagong tagubilin sa output object file.

Sa ilang mga platform, maaaring gumawa ng simbolikong pag-debug ang mga global optimization ng oras ng link na ito
ang nagresultang executable imposible. Ito ay kilala na ang kaso para sa Matsushita
MN10200 at MN10300 na pamilya ng mga processor.

Sa mga platform kung saan hindi ito suportado, --relax ay tinatanggap, ngunit hindi pinapansin.

--retain-symbols-file filename
Panatilihin lamang ang mga simbolo na nakalista sa file filename, itinatapon ang lahat ng iba pa. filename
ay simpleng flat file, na may isang pangalan ng simbolo bawat linya. Lalo na ang pagpipiliang ito
kapaki-pakinabang sa mga kapaligiran (tulad ng VxWorks) kung saan naroon ang isang malaking talahanayan ng pandaigdigang simbolo
unti-unting naipon, upang makatipid ng memorya ng run-time.

--retain-symbols-file ang hindi itapon ang mga hindi natukoy na simbolo, o mga simbolo na kailangan para sa
mga relokasyon.

Maaari mo lamang tukuyin --retain-symbols-file isang beses sa command line. Ino-override nito -s
at -S.

-rpath dir
Magdagdag ng direktoryo sa runtime na landas sa paghahanap ng library. Ito ay ginagamit kapag nagli-link ng isang ELF
maipapatupad sa mga nakabahaging bagay. Lahat -rpath ang mga argumento ay pinagsama-sama at ipinapasa sa
ang runtime linker, na gumagamit ng mga ito upang mahanap ang mga nakabahaging bagay sa runtime. Ang -rpath
Ginagamit din ang opsyon kapag naghahanap ng mga shared object na kailangan ng shared objects
tahasang kasama sa link; tingnan ang paglalarawan ng -rpath-link pagpipilian Kung
-rpath ay hindi ginagamit kapag nagli-link ng isang ELF executable, ang mga nilalaman ng kapaligiran
Ang variable na "LD_RUN_PATH" ay gagamitin kung ito ay tinukoy.

Ang -rpath maaari ding gamitin ang opsyon sa SunOS. Bilang default, sa SunOS, gagawin ng linker
bumuo ng isang runtime na patch sa paghahanap sa lahat ng -L mga pagpipilian na ibinigay. Kung ang -rpath opsyon
ay ginagamit, ang runtime na landas sa paghahanap ay bubuuin ng eksklusibo gamit ang -rpath pagpipilian
hindi pinapansin ang -L mga pagpipilian. Maaari itong maging kapaki-pakinabang kapag gumagamit ng gcc, na nagdaragdag ng marami -L
mga opsyon na maaaring nasa NFS mounted filesystems.

Para sa pagiging tugma sa iba pang mga linker ng ELF, kung ang -R ang opsyon ay sinusundan ng isang direktoryo
pangalan, sa halip na isang pangalan ng file, ito ay itinuturing bilang ang -rpath pagpipilian.

-rpath-link DIR
Kapag gumagamit ng ELF o SunOS, ang isang nakabahaging library ay maaaring mangailangan ng isa pa. Nangyayari ito kapag ang isang
Ang link na "ld -shared" ay may kasamang shared library bilang isa sa mga input file.

Kapag ang linker ay nakatagpo ng ganoong dependency kapag gumagawa ng isang hindi nakabahagi, hindi nalilipat
link, awtomatiko nitong susubukang hanapin ang kinakailangang nakabahaging library at isama ito
sa link, kung hindi ito tahasang kasama. Sa ganitong kaso, ang -rpath-link opsyon
tumutukoy sa unang hanay ng mga direktoryo na hahanapin. Ang -rpath-link maaaring tukuyin ang opsyon
isang pagkakasunud-sunod ng mga pangalan ng direktoryo alinman sa pamamagitan ng pagtukoy ng isang listahan ng mga pangalan na pinaghihiwalay ng
colon, o sa pamamagitan ng paglitaw ng maraming beses.

Ang opsyong ito ay dapat gamitin nang may pag-iingat dahil na-override nito ang path ng paghahanap na maaaring mayroon
ay mahirap na pinagsama-sama sa isang nakabahaging aklatan. Sa ganitong kaso posible itong gamitin
hindi sinasadya ng ibang landas sa paghahanap kaysa sa gagawin ng runtime linker.

Ginagamit ng linker ang mga sumusunod na path sa paghahanap upang mahanap ang mga kinakailangang shared library.

1. Anumang mga direktoryo na tinukoy ni -rpath-link mga pagpipilian.

2. Anumang mga direktoryo na tinukoy ni -rpath mga pagpipilian. Ang pagkakaiba sa pagitan ng -rpath at
-rpath-link ang mga direktoryong iyon ay tinukoy ng -rpath ang mga opsyon ay kasama sa
maipapatupad at ginagamit sa runtime, samantalang ang -rpath-link Ang pagpipilian ay epektibo lamang
sa oras ng link. Ito ay para sa katutubong linker lamang.

3. Sa isang ELF system, kung ang -rpath at "rpath-link" na mga opsyon ay hindi ginamit, hanapin ang
mga nilalaman ng environment variable na "LD_RUN_PATH". Ito ay para sa katutubong linker
lamang.

4. Sa SunOS, kung ang -rpath hindi ginamit ang opsyon, maghanap ng anumang mga direktoryo na tinukoy
paggamit -L mga pagpipilian.

5. Para sa isang native na linker, ang mga nilalaman ng environment variable na "LD_LIBRARY_PATH".

6. Para sa isang katutubong ELF linker, ang mga direktoryo sa "DT_RUNPATH" o "DT_RPATH" ng isang nakabahaging
Hinahanap ang aklatan para sa mga nakabahaging aklatan na kailangan nito. Ang mga entry na "DT_RPATH" ay
hindi pinansin kung may mga entry na "DT_RUNPATH".

7. Ang mga default na direktoryo, karaniwan / lib at / Usr / lib.

8. Para sa isang katutubong linker sa isang ELF system, kung ang file /etc/ld.so.conf umiiral, ang listahan
ng mga direktoryo na matatagpuan sa file na iyon.

Kung hindi mahanap ang kinakailangang shared library, maglalabas ang linker ng babala at
magpatuloy sa link.

-ibinahagi
-Bshareable
Gumawa ng shared library. Ito ay kasalukuyang sinusuportahan lamang sa ELF, XCOFF at SunOS
mga platform. Sa SunOS, awtomatikong gagawa ng shared library ang linker kung ang -e
hindi ginagamit ang opsyon at may mga hindi natukoy na simbolo sa link.

--sort-common
Ang pagpipiliang ito ay nagsasabi ld upang pag-uri-uriin ang mga karaniwang simbolo ayon sa laki kapag inilagay ang mga ito sa
naaangkop na mga seksyon ng output. Una dumating ang lahat ng isang byte na simbolo, pagkatapos ay ang lahat ng dalawa
byte, pagkatapos ang lahat ng apat na byte, at pagkatapos ang lahat ng iba pa. Ito ay para maiwasan ang mga gaps
sa pagitan ng mga simbolo dahil sa mga hadlang sa pagkakahanay.

--sort-section pangalan
Ilalapat ng opsyong ito ang "SORT_BY_NAME" sa lahat ng pattern ng wildcard na seksyon sa linker
script.

--sort-section pagkakahanay
Ilalapat ng opsyong ito ang "SORT_BY_ALIGNMENT" sa lahat ng pattern ng wildcard na seksyon sa
linker script.

--split-by-file [laki]
Kapareho ng --split-by-reloc ngunit lumilikha ng bagong seksyon ng output para sa bawat input file kapag
laki naabot. laki default sa isang sukat na 1 kung hindi ibinigay.

--split-by-reloc [bilangin]
Sinusubukang lumikha ng mga karagdagang seksyon sa output file upang walang solong output na seksyon sa
ang file ay naglalaman ng higit sa bilangin mga relokasyon. Ito ay kapaki-pakinabang kapag bumubuo ng malaki
relocatable file para sa pag-download sa ilang mga real time kernel na may COFF object
format ng file; dahil hindi maaaring kumatawan ang COFF ng higit sa 65535 na mga relokasyon sa isang solong
seksyon. Tandaan na hindi ito gagana sa mga object file format na hindi
suportahan ang mga arbitrary na seksyon. Hindi hahatiin ng linker ang mga indibidwal na seksyon ng input
para sa muling pamamahagi, kaya kung ang isang seksyon ng pag-input ay naglalaman ng higit sa bilangin paglipat
ang isang seksyon ng output ay maglalaman ng maraming relokasyon. bilangin default sa isang halaga ng
32768.

--stats
Mag-compute at magpakita ng mga istatistika tungkol sa pagpapatakbo ng linker, gaya ng pagpapatupad
oras at paggamit ng memorya.

--sysroot=direktoryo
paggamit direktoryo bilang lokasyon ng sysroot, na override ang configure-time na default.
Ang opsyong ito ay sinusuportahan lamang ng mga linker na na-configure gamit --may-sysroot.

--tradisyonal na porma
Para sa ilang mga target, ang output ng ld ay naiiba sa ilang mga paraan mula sa output ng ilan
umiiral na linker. Ang switch na ito ay humihiling ld gamitin ang tradisyonal na format sa halip.

Halimbawa, sa SunOS, ld pinagsasama ang mga duplicate na entry sa talahanayan ng string ng simbolo. Ito
maaaring bawasan ang laki ng isang output file na may buong impormasyon sa pag-debug ng higit sa 30
porsyento. Sa kasamaang palad, hindi mabasa ng programang "dbx" ng SunOS ang resultang programa
(walang problema ang "gdb"). Ang --tradisyonal na porma sabi ng switch ld para hindi pagsamahin
mga duplicate na entry.

--section-start pangalan ng seksyon=org
Maghanap ng isang seksyon sa output file sa ganap na address na ibinigay ni org. Maaari mong gamitin
ang pagpipiliang ito nang maraming beses hangga't kinakailangan upang mahanap ang maraming mga seksyon sa command
linya. org dapat ay isang solong hexadecimal integer; para sa pagiging tugma sa iba pang mga linker,
maaari mong alisin ang nangunguna 0x karaniwang nauugnay sa mga halaga ng hexadecimal. tandaan: doon
dapat walang puting espasyo sa pagitan pangalan ng seksyon, ang katumbas na tanda (``=''), at org.

-Tbss org
-Tdata org
-Ttext org
Pareho sa --section-start, na may ".bss", ".data" o ".text" bilang ang pangalan ng seksyon.

--unresolved-symbols=paraan
Tukuyin kung paano pangasiwaan ang mga hindi nalutas na simbolo. Mayroong apat na posibleng halaga para sa
paraan:

huwag pansinin-lahat
Huwag mag-ulat ng anumang hindi nalutas na mga simbolo.

ulat-lahat
Iulat ang lahat ng hindi nalutas na mga simbolo. Ito ang default.

huwag pansinin-sa-object-file
Mag-ulat ng mga hindi nalutas na simbolo na nasa mga shared library, ngunit huwag pansinin ang mga ito
kung nagmula sila sa mga regular na object file.

huwag pansinin-in-shared-libs
Mag-ulat ng mga hindi nalutas na simbolo na nagmumula sa mga regular na object file, ngunit huwag pansinin ang mga ito kung
nagmula sila sa mga shared library. Maaari itong maging kapaki-pakinabang kapag gumagawa ng isang dynamic
binary at ito ay kilala na ang lahat ng mga shared library na ito ay dapat na sanggunian
ay kasama sa command line ng linker.

Ang pag-uugali para sa mga shared library sa kanilang sarili ay maaari ding kontrolin ng
--[no-]allow-shlib-undefined pagpipilian.

Karaniwan ang linker ay bubuo ng mensahe ng error para sa bawat naiulat na hindi nalutas na simbolo
ngunit ang pagpipilian --babala-hindi nalutas-mga simbolo maaaring baguhin ito sa isang babala.

--dll-verbose
--verbose
Ipakita ang numero ng bersyon para sa ld at ilista ang mga linker emulation na sinusuportahan. Pagpapakita
kung aling mga input file ang maaari at hindi mabuksan. Ipakita ang linker script na ginagamit ni
ang linker.

--version-script=version-scriptfile
Tukuyin ang pangalan ng script ng bersyon sa linker. Ito ay karaniwang ginagamit kapag
paglikha ng mga nakabahaging aklatan upang tukuyin ang karagdagang impormasyon tungkol sa bersyon
hierarchy para sa library na ginagawa. Ang pagpipiliang ito ay makabuluhan lamang sa ELF
mga platform na sumusuporta sa mga shared library.

--babala-karaniwan
Magbabala kapag ang isang karaniwang simbolo ay pinagsama sa isa pang karaniwang simbolo o may isang simbolo
kahulugan. Ang mga linker ng Unix ay nagpapahintulot sa medyo palpak na pagsasanay na ito, ngunit ang mga linker sa ilan
iba pang mga operating system ay hindi. Ang pagpipiliang ito ay nagbibigay-daan sa iyo na makahanap ng mga potensyal na problema
mula sa pagsasama-sama ng mga pandaigdigang simbolo. Sa kasamaang palad, ginagamit ng ilang C library ang pagsasanay na ito, kaya
maaari kang makakuha ng ilang mga babala tungkol sa mga simbolo sa mga aklatan gayundin sa iyong mga programa.

Mayroong tatlong uri ng mga pandaigdigang simbolo, na inilalarawan dito ng mga halimbawa ng C:

int i = 1;
Isang kahulugan, na napupunta sa inisyal na seksyon ng data ng output file.

panlabas int i;
Isang hindi natukoy na sanggunian, na hindi naglalaan ng espasyo. Dapat mayroong alinman sa a
kahulugan o isang karaniwang simbolo para sa variable sa isang lugar.

int i;
Isang karaniwang simbolo. Kung mayroon lamang (isa o higit pa) mga karaniwang simbolo para sa isang variable,
napupunta ito sa uninitialized data area ng output file. Ang linker ay nagsasama
maramihang mga karaniwang simbolo para sa parehong variable sa isang solong simbolo. Kung sila ay
ng iba't ibang laki, pinipili nito ang pinakamalaking sukat. Ang linker ay nagiging isang karaniwang simbolo
sa isang deklarasyon, kung mayroong isang kahulugan ng parehong variable.

Ang --babala-karaniwan ang opsyon ay maaaring makagawa ng limang uri ng mga babala. Ang bawat babala ay binubuo ng
isang pares ng mga linya: ang una ay naglalarawan sa simbolo na kakakilala lang, at ang pangalawa
inilalarawan ang nakaraang simbolo na nakatagpo ng parehong pangalan. Isa o pareho sa dalawa
ang mga simbolo ay magiging isang karaniwang simbolo.

1. Ginagawang sanggunian ang isang karaniwang simbolo, dahil mayroon nang kahulugan
para sa simbolo.

( ): babala: karaniwan ng ` '
na-override sa pamamagitan ng kahulugan
( ): babala: tinukoy dito

2. Ginagawang sanggunian ang isang karaniwang simbolo, dahil isang mas huling kahulugan para sa
simbolo ay nakatagpo. Ito ay pareho sa nakaraang kaso, maliban na ang
ang mga simbolo ay nakatagpo sa ibang pagkakasunud-sunod.

( ): babala: kahulugan ng ` '
overriding karaniwan
( ): babala: karaniwan ay narito

3. Pagsasama ng isang karaniwang simbolo sa isang dating parehong laki ng karaniwang simbolo.

( ): babala: maramihang karaniwan
ng ` '
( ): babala: dating karaniwan ay narito

4. Pagsasama ng isang karaniwang simbolo sa isang nakaraang mas malaking karaniwang simbolo.

( ): babala: karaniwan ng ` '
na-override ng mas malaking common
( ): babala: narito ang mas malaking karaniwan

5. Pagsasama ng isang karaniwang simbolo sa isang nakaraang mas maliit na karaniwang simbolo. Ito ay pareho
tulad ng nakaraang kaso, maliban na ang mga simbolo ay nakatagpo sa ibang
order.

( ): babala: karaniwan ng ` '
override mas maliit na karaniwan
( ): babala: smaller common is here

--warn-constructors
Magbabala kung may ginagamit na mga global constructor. Ito ay kapaki-pakinabang lamang para sa ilang object file
mga format. Para sa mga format tulad ng COFF o ELF, hindi matukoy ng linker ang paggamit ng global
mga konstruktor.

--warn-multiple-gp
Magbabala kung kailangan ng maramihang mga global pointer value sa output file. Ito ay lamang
makabuluhan para sa ilang partikular na processor, gaya ng Alpha. Sa partikular, ang ilang mga processor
ilagay ang malalaking halaga na mga constant sa isang espesyal na seksyon. Isang espesyal na rehistro (ang global
pointer) ay tumuturo sa gitna ng seksyong ito, upang ang mga constant ay mai-load
mahusay sa pamamagitan ng base-register relative addressing mode. Dahil ang offset sa base-
register relative mode ay naayos at medyo maliit (eg, 16 bits), nililimitahan nito ang
maximum na laki ng pare-parehong pool. Kaya, sa malalaking programa, madalas na kinakailangan
gumamit ng maramihang mga global pointer value para matugunan ang lahat ng posible
mga pare-pareho. Ang opsyon na ito ay nagdudulot ng babala sa tuwing mangyayari ang kasong ito.

--babala-minsan
Isang beses lang magbabala para sa bawat hindi natukoy na simbolo, sa halip na isang beses sa bawat module na tumutukoy sa
ito.

--warn-section-align
Magbabala kung binago ang address ng isang seksyon ng output dahil sa pagkakahanay. Karaniwan,
ang pagkakahanay ay itatakda ng isang seksyon ng pag-input. Ang address ay mababago lamang kung ito
hindi tahasang tinukoy; ibig sabihin, kung ang utos na "SECTIONS" ay hindi tumutukoy ng panimula
address para sa seksyon.

--warn-shared-textrel
Magbabala kung ang linker ay nagdagdag ng DT_TEXTREL sa isang nakabahaging bagay.

--babala-hindi nalutas-mga simbolo
Kung ang linker ay mag-uulat ng hindi nalutas na simbolo (tingnan ang opsyon
--hindi nalutas-mga simbolo) ito ay karaniwang bubuo ng isang error. Ginagawa ito ng pagpipiliang ito
bumuo ng babala sa halip.

--error-unresolved-symbols
Ibinabalik nito ang default na gawi ng linker sa pagbuo ng mga error kapag nag-uulat ito
hindi nalutas na mga simbolo.

--buong-archive
Para sa bawat archive na nabanggit sa command line pagkatapos ng --buong-archive pagpipilian,
isama ang bawat object file sa archive sa link, sa halip na maghanap sa
archive para sa mga kinakailangang object file. Ito ay karaniwang ginagamit upang i-on ang isang archive file
sa isang nakabahaging aklatan, na pinipilit ang bawat bagay na maisama sa nagresultang pagbabahagi
aklatan. Maaaring gamitin ang opsyong ito nang higit sa isang beses.

Dalawang tala kapag ginagamit ang opsyong ito mula sa gcc: Una, hindi alam ng gcc ang tungkol sa opsyong ito,
kaya kailangan mong gamitin -Wl,-buong-archive. Pangalawa, huwag kalimutang gamitin
-Wl,-walang-buong-archive pagkatapos ng iyong listahan ng mga archive, dahil magdaragdag ang gcc ng sarili nitong listahan
ng mga archive sa iyong link at maaaring hindi mo gustong maapektuhan din ng flag na ito ang mga iyon.

--balutin simbolo
Gumamit ng function ng wrapper para sa simbolo. Anumang hindi natukoy na sanggunian sa simbolo ay malulutas
balutin_simbolo". Anumang hindi natukoy na sanggunian sa "__real_simbolo" ay malulutas sa
simbolo.

Magagamit ito para magbigay ng wrapper para sa isang function ng system. Ang function ng wrapper
dapat tawaging "__wrap_simbolo". Kung nais nitong tawagan ang function ng system, dapat
tawagan ang "__real_simbolo".

Narito ang isang maliit na halimbawa:

walang bisa*
__wrap_malloc (laki_t c)
{
printf ("malloc na tinatawag na may %zu\n", c);
ibalik ang __real_malloc (c);
}

Kung magli-link ka ng ibang code sa file na ito gamit ang --balutin malloc, pagkatapos ay ang lahat ng tawag sa "malloc"
tatawagin ang function na "__wrap_malloc" sa halip. Ang tawag sa "__real_malloc" sa
"__wrap_malloc" ay tatawag sa tunay na "malloc" function.

Maaaring naisin mong magbigay din ng function na "__real_malloc", upang mag-link nang walang
--balutin ang pagpipilian ay magtatagumpay. Kung gagawin mo ito, hindi mo dapat ilagay ang kahulugan ng
"__real_malloc" sa parehong file bilang "__wrap_malloc"; kung gagawin mo, maaaring ang assembler
lutasin ang tawag bago magkaroon ng pagkakataon ang linker na i-wrap ito sa "malloc".

--enable-new-dtags
--disable-new-dtags
Ang linker na ito ay maaaring gumawa ng mga bagong dynamic na tag sa ELF. Ngunit ang mga mas lumang sistema ng ELF ay maaaring hindi
unawain mo sila. Kung tinukoy mo --enable-new-dtags, malilikha ang mga dynamic na tag
kung kinakailangan. Kung tinukoy mo --disable-new-dtags, walang bagong dynamic na tag na gagawin.
Bilang default, hindi ginagawa ang mga bagong dynamic na tag. Tandaan na ang mga pagpipiliang iyon ay lamang
magagamit para sa mga sistema ng ELF.

--hash-size=numero
Itakda ang default na laki ng mga hash table ng linker sa isang prime number na malapit sa numero.
Ang pagpapataas ng halagang ito ay maaaring mabawasan ang haba ng oras na kinakailangan ng linker upang maisagawa ito
mga gawain, sa gastos ng pagtaas ng mga kinakailangan sa memorya ng linker. Ganun din
ang pagbabawas ng halagang ito ay maaaring mabawasan ang mga kinakailangan sa memorya sa kapinsalaan ng bilis.

--bawasan-memory-overheads
Binabawasan ng opsyong ito ang mga kinakailangan sa memory sa ld runtime, sa gastos ng pag-link
bilis. Ito ay ipinakilala sa upang piliin ang lumang O(n^2) algorithm para sa link map file
henerasyon, sa halip na ang bagong O(n) algorithm na gumagamit ng humigit-kumulang 40% na higit pang memorya para sa
imbakan ng simbolo.

Ang isa pang epekto ng switch ay ang itakda ang default na laki ng hash table sa 1021, na
muling nagse-save ng memorya sa halaga ng pagpapahaba ng oras ng pagtakbo ng linker. Hindi ito tapos
gayunpaman kung ang --hash-laki ginamit ang switch.

Ang --bawasan-memory-overheads switch ay maaari ding gamitin upang paganahin ang iba pang mga tradeoffs in
mga hinaharap na bersyon ng linker.

Sinusuportahan ng i386 PE linker ang -ibinahagi opsyon, na nagiging sanhi ng output na a
dynamically linked library (DLL) sa halip na isang normal na executable. Dapat mong pangalanan ang
output "*.dll" kapag ginamit mo ang opsyong ito. Bilang karagdagan, ganap na sinusuportahan ng linker ang
karaniwang "*.def" na mga file, na maaaring tukuyin sa command line ng linker tulad ng isang bagay
file (sa katunayan, dapat itong mauna sa mga archive kung saan ito nag-e-export ng mga simbolo, upang matiyak na nakukuha nila
naka-link, tulad ng isang normal na object file).

Bilang karagdagan sa mga opsyon na karaniwan sa lahat ng mga target, ang i386 PE linker ay sumusuporta sa karagdagang
mga opsyon sa command line na partikular sa target na i386 PE. Mga opsyon na kumukuha ng mga halaga
maaaring ihiwalay sa kanilang mga halaga sa pamamagitan ng alinman sa isang puwang o isang katumbas na tanda.

--add-stdcall-alias
Kung ibinigay, mga simbolo na may stdcall suffix (@nn) ay i-export bilang-ay at gayundin sa
hinubad ang panlapi. [Ang opsyon na ito ay partikular sa i386 PE na naka-target na port ng linker]

--base-file file
paggamit file bilang pangalan ng isang file kung saan ise-save ang mga base address ng lahat ng
mga relokasyon na kailangan para sa pagbuo ng mga DLL gamit ang dlltool. [Ito ay isang partikular na i386 PE
pagpipilian]

--dll
Lumikha ng isang DLL sa halip na isang regular na maipapatupad. Maaari mo ring gamitin -ibinahagi o tukuyin ang a
"LIBRARY" sa isang ibinigay na ".def" na file. [Ang opsyong ito ay partikular sa i386 PE na naka-target
port ng linker]

--enable-stdcall-fixup
--disable-stdcall-fixup
Kung makakita ang link ng isang simbolo na hindi nito maresolba, susubukan nitong gawin ang ``fuzzy
linking'' sa pamamagitan ng paghahanap ng isa pang tinukoy na simbolo na naiiba lamang sa format ng
pangalan ng simbolo (cdecl vs stdcall) at lulutasin ang simbolo na iyon sa pamamagitan ng pag-link sa tugma.
Halimbawa, ang hindi natukoy na simbolo na "_foo" ay maaaring maiugnay sa function na "_foo@12", o
ang hindi natukoy na simbolo na "_bar@16" ay maaaring maiugnay sa function na "_bar". Kapag ang
ginagawa ito ng linker, nagpi-print ito ng babala, dahil karaniwan nang nabigo itong mag-link,
ngunit kung minsan ang pag-import ng mga aklatan na nabuo mula sa mga third-party na dll ay maaaring mangailangan ng tampok na ito
upang magamit. Kung tinukoy mo --enable-stdcall-fixup, ang tampok na ito ay ganap na pinagana
at ang mga babala ay hindi nakalimbag. Kung tinukoy mo --disable-stdcall-fixup, ang tampok na ito ay
hindi pinagana at ang mga ganitong hindi pagkakatugma ay itinuturing na mga error. [Ang opsyon na ito ay partikular sa
ang i386 PE na naka-target na port ng linker]

--export-all-symbols
Kung ibinigay, ang lahat ng mga pandaigdigang simbolo sa mga bagay na ginamit upang bumuo ng isang DLL ay ie-export ng
ang DLL. Tandaan na ito ang default kung walang anumang na-export
mga simbolo. Kapag ang mga simbolo ay tahasang na-export sa pamamagitan ng mga file ng DEF o tahasang na-export
sa pamamagitan ng mga katangian ng pag-andar, ang default ay hindi mag-export ng anupaman maliban kung ang pagpipiliang ito
ay ibinigay. Tandaan na ang mga simbolo na "DllMain@12", "DllEntryPoint@0",
Ang "DllMainCRTSstartup@12", at "impure_ptr" ay hindi awtomatikong ie-export. Gayundin,
ang mga simbolo na na-import mula sa iba pang mga DLL ay hindi muling ie-export, o ang mga simbolo na tumutukoy
panloob na layout ng DLL tulad ng mga nagsisimula sa "_head_" o nagtatapos sa
"_iname". Bilang karagdagan, walang mga simbolo mula sa "libgcc", "libstd++", "libmingw32", o
Ang "crtX.o" ay ie-export. Mga simbolo na ang mga pangalan ay nagsisimula sa "__rtti_" o "__builtin_"
ay hindi ie-export, para tumulong sa mga C++ DLL. Sa wakas, mayroong isang malawak na listahan ng
cygwin-private na mga simbolo na hindi na-export (malinaw naman, nalalapat ito kapag nagtatayo
DLL para sa mga target ng cygwin). Ang mga cygwin-excludes na ito ay: "_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", at "environ". [Ang opsyong ito ay partikular sa i386 PE na naka-target
port ng linker]

--ibukod-mga simbolo simbolo,simbolo, ...
Tinutukoy ang isang listahan ng mga simbolo na hindi dapat awtomatikong i-export. Ang simbolo
ang mga pangalan ay maaaring lagyan ng mga kuwit o tutuldok. [Ang opsyong ito ay partikular sa i386 PE
naka-target na port ng linker]

--file-alignment
Tukuyin ang pagkakahanay ng file. Ang mga seksyon sa file ay palaging magsisimula sa mga offset ng file
na mga multiple ng numerong ito. Nagde-default ito sa 512. [This option is specific
sa i386 PE na naka-target na port ng linker]

--bunton reserba
--bunton reserba,gumawa
Tukuyin ang dami ng memory na irereserba (at opsyonal na i-commit) na gagamitin bilang heap para sa
programang ito. Ang default ay 1Mb reserved, 4K committed. [Ang opsyon na ito ay partikular sa
ang i386 PE na naka-target na port ng linker]

--image-base halaga
paggamit halaga bilang base address ng iyong program o dll. Ito ang pinakamababang memorya
lokasyon na gagamitin kapag na-load ang iyong program o dll. Upang mabawasan ang pangangailangan sa
ilipat at pagbutihin ang pagganap ng iyong mga dll, ang bawat isa ay dapat magkaroon ng isang natatanging base address
at hindi nagsasapawan ng anumang iba pang mga dll. Ang default ay 0x400000 para sa mga executable, at
0x10000000 para sa mga dll. [Ang opsyong ito ay partikular sa i386 PE na naka-target na port ng
linker]

--patayin-sa
Kung ibinigay, ang stdcall ay suffix (@nn) ay aalisin sa mga simbolo bago ang mga ito
na-export. [Ang opsyon na ito ay partikular sa i386 PE na naka-target na port ng linker]

--malaking-address-aware
Kung ibinigay, ang naaangkop na bit sa ``Charateristics'' field ng COFF header ay
itinakda upang ipahiwatig na ang executable na ito ay sumusuporta sa mga virtual na address na higit sa 2
gigabytes. Dapat itong gamitin kasabay ng /3GB o /USERVA=halaga megabytes
lumipat sa seksyong ``[operating systems]'' ng BOOT.INI. Kung hindi, ito bit
walang epekto. [Ang pagpipiliang ito ay partikular sa mga port na naka-target sa PE ng linker]

--major-image-version halaga
Itinatakda ang pangunahing bilang ng ``bersyon ng imahe''. Default sa 1. [Ang pagpipiliang ito ay
partikular sa i386 PE na naka-target na port ng linker]

--major-os-bersyon halaga
Itinatakda ang major number ng ``os version''. Defaults sa 4. [Ito ay tiyak
sa i386 PE na naka-target na port ng linker]

--major-subsystem-bersyon halaga
Itinatakda ang pangunahing bilang ng ``subsystem na bersyon''. Default sa 4. [Ang pagpipiliang ito ay
partikular sa i386 PE na naka-target na port ng linker]

--minor-image-version halaga
Itinatakda ang minor na numero ng ``bersyon ng imahe''. Default sa 0. [Ang opsyon na ito ay
partikular sa i386 PE na naka-target na port ng linker]

--minor-os-bersyon halaga
Itinatakda ang minor number ng ``os version''. Defaults sa 0. [Ito ay tiyak
sa i386 PE na naka-target na port ng linker]

--minor-subsystem-bersyon halaga
Itinatakda ang minor na numero ng ``subsystem na bersyon''. Default sa 0. [Ang opsyon na ito ay
partikular sa i386 PE na naka-target na port ng linker]

--output-def file
Ang linker ay gagawa ng file file na maglalaman ng isang DEF file na naaayon sa
ang DLL ang linker ay bumubuo. Ang DEF file na ito (na dapat tawaging "*.def") ay maaaring
gamitin upang lumikha ng isang import library na may "dlltool" o maaaring gamitin bilang isang sanggunian sa
awtomatiko o tuwirang na-export na mga simbolo. [Ang opsyong ito ay partikular sa i386 PE
naka-target na port ng linker]

--out-imlib file
Ang linker ay gagawa ng file file na maglalaman ng import lib na katumbas ng
ang DLL ang linker ay bumubuo. Ang import lib na ito (na dapat tawaging "*.dll.a" o
Maaaring gamitin ang "*.a" upang i-link ang mga kliyente laban sa nabuong DLL; ginagawa ito ng pag-uugaling ito
posibleng laktawan ang isang hiwalay na "dlltool" na hakbang sa paggawa ng library ng import. [Ang pagpipiliang ito ay
partikular sa i386 PE na naka-target na port ng linker]

--enable-auto-image-base
Awtomatikong piliin ang base ng imahe para sa mga DLL, maliban kung ang isa ay tinukoy gamit ang
"--image-base" na argumento. Sa pamamagitan ng paggamit ng hash na nabuo mula sa dllname upang lumikha ng natatangi
mga base ng imahe para sa bawat DLL, in-memory collisions at relocations na maaaring maantala ang programa
iniiwasan ang pagpapatupad. [Ang opsyong ito ay partikular sa i386 PE na naka-target na port ng
linker]

--disable-auto-image-base
Huwag awtomatikong bumuo ng isang natatanging base ng imahe. Kung walang user-specified
image base ("--image-base") pagkatapos ay gamitin ang default na platform. [Ito ay tiyak
sa i386 PE na naka-target na port ng linker]

--dll-search-prefix pisi
Kapag dynamic na nagli-link sa isang dll na walang import library, hanapin ang
" .dll" bilang kagustuhan sa "lib .dll". Pinapayagan ng gawi na ito
madaling pagkakaiba sa pagitan ng mga DLL na binuo para sa iba't ibang "subplatform": native, cygwin,
uwin, pw, atbp. Halimbawa, ang mga cygwin DLL ay karaniwang gumagamit ng "--dll-search-prefix=cyg".
[Ang opsyon na ito ay partikular sa i386 PE na naka-target na port ng linker]

--enable-auto-import
Gumawa ng sopistikadong pag-link ng "_symbol" sa "__imp__symbol" para sa mga pag-import ng DATA mula sa mga DLL,
at lumikha ng mga kinakailangang simbolo ng thunking kapag binubuo ang mga aklatan ng pag-import gamit ang
ang mga DATA export na iyon. Tandaan: Ang paggamit ng extension na 'auto-import' ay magdudulot ng text
seksyon ng file ng imahe na gagawing maisusulat. Hindi ito umaayon sa PE-COFF
detalye ng format na inilathala ng Microsoft.

Ang paggamit ng 'auto-import' sa pangkalahatan ay 'gumagana lang' -- ngunit minsan ay makikita mo ito
mensahe:

Hindi maaaring awtomatikong i-import ang "variable ' '. Pakibasa ang dokumentasyon para sa ld's
"--enable-auto-import" para sa mga detalye."

Ang mensaheng ito ay nangyayari kapag ang ilang (sub) expression ay nag-access sa isang address na sa huli ay ibinigay ni
ang kabuuan ng dalawang constants (Pinapayagan lamang ng mga talahanayan ng pag-import ng Win32 ang isa). Mga pagkakataon kung saan ito
maaaring mangyari kasama ang mga pag-access sa mga field ng miyembro ng mga variable ng struct na na-import mula sa isang DLL,
pati na rin ang paggamit ng isang palaging index sa isang array variable na na-import mula sa isang DLL. Anuman
multiword variable (arrays, structs, long long, etc) ay maaaring mag-trigger ng error na kundisyon na ito.
Gayunpaman, anuman ang eksaktong uri ng data ng nakakasakit na na-export na variable, gagawin ng ld
laging tuklasin ito, ilabas ang babala, at lumabas.

Mayroong ilang mga paraan upang matugunan ang kahirapan na ito, anuman ang uri ng data ng
na-export na variable:

Ang isang paraan ay ang paggamit ng --enable-runtime-pseudo-reloc switch. Iniiwan nito ang gawain ng
pagsasaayos ng mga sanggunian sa iyong client code para sa runtime environment, kaya gumagana ang paraang ito
kapag sinusuportahan lang ng runtime environment ang feature na ito.

Ang pangalawang solusyon ay ang pilitin ang isa sa mga 'constant' na maging variable -- ibig sabihin,
hindi alam at hindi na-optimize sa oras ng pag-compile. Para sa mga array, mayroong dalawang posibilidad:
a) gawing variable ang indexee (address ng array), o b) gawin ang 'constant' index
isang variable. kaya:

panlabas na uri extern_array[];
extern_array[1] -->
{ pabagu-bago ng isip uri *t=extern_array; t[1] }

or

panlabas na uri extern_array[];
extern_array[1] -->
{ pabagu-bago ng isip int t=1; extern_array[t] }

Para sa mga struct (at karamihan sa iba pang mga multiword na uri ng data) ang tanging pagpipilian ay gawin ang
struct mismo (o ang long long, o ang ...) variable:

extern struct s extern_struct;
extern_struct.field -->
{ pabagu-bago ng isip struct s *t=&extern_struct; t->patlang }

or

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

Ang ikatlong paraan ng pagharap sa kahirapan na ito ay ang pag-abandona sa 'auto-import' para sa
nakakasakit na simbolo at markahan ito ng "__declspec(dllimport)". Gayunpaman, sa pagsasanay na
nangangailangan ng paggamit ng compile-time #defines upang ipahiwatig kung ikaw ay gumagawa ng isang DLL,
pagbuo ng client code na magli-link sa DLL, o pagbuo lamang/pagli-link sa isang static
aklatan. Sa paggawa ng pagpili sa pagitan ng iba't ibang paraan ng paglutas ng 'direkta
address na may pare-parehong offset' na problema, dapat mong isaalang-alang ang karaniwang paggamit sa real-world:

Orihinal na:

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

Solution 1:

--foo.h
extern int arr[];
--foo.c
#include "foo.h"
void main(int argc, char **argv){
/* Ang workaround na ito ay para sa win32 at cygwin; huwag "i-optimize" */
pabagu-bago ng isip int *parr = arr;
printf("%d\n",parr[1]);
}

Solution 2:

--foo.h
/* Tandaan: ipinapalagay ang auto-export (walang __declspec(dllexport)) */
#if (defined(_WIN32) ⎪⎪ tinukoy(__CYGWIN__)) && \
!(tinukoy(FOO_BUILD_DLL) ⎪⎪ tinukoy(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#iba
#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 ikaapat na paraan upang maiwasan ang problemang ito ay muling i-code ang iyong library upang gumamit ng functional
interface sa halip na isang interface ng data para sa mga nakakasakit na variable (hal set_foo() at
get_foo() mga function ng accessor). [Ang opsyong ito ay partikular sa i386 PE na naka-target na port
ng linker]

--disable-auto-import
Huwag subukang gumawa ng sopistikadong pag-link ng "_symbol" sa "__imp__symbol" para sa DATA
pag-import mula sa mga DLL. [Ang opsyong ito ay partikular sa i386 PE na naka-target na port ng
linker]

--enable-runtime-pseudo-reloc
Kung ang iyong code ay naglalaman ng mga expression na inilarawan sa --enable-auto-import na seksyon, iyon ay,
DATA imports mula sa DLL na may non-zero offset, ang switch na ito ay lilikha ng vector ng
'runtime pseudo relocations' na maaaring gamitin ng runtime environment upang ayusin
mga sanggunian sa naturang data sa iyong client code. [Ang opsyong ito ay partikular sa i386 PE
naka-target na port ng linker]

--disable-runtime-pseudo-reloc
Huwag gumawa ng mga pseudo relocation para sa mga non-zero offset na pag-import ng DATA mula sa mga DLL. Ito ay
ang default. [Ang opsyon na ito ay partikular sa i386 PE na naka-target na port ng linker]

--enable-extra-pe-debug
Magpakita ng karagdagang impormasyon sa pag-debug na nauugnay sa pag-thunking ng simbolo ng auto-import. [Ang pagpipiliang ito ay
partikular sa i386 PE na naka-target na port ng linker]

--section-alignment
Itinatakda ang pagkakahanay ng seksyon. Ang mga seksyon sa memorya ay palaging magsisimula sa mga address na kung saan
ay isang multiple ng numerong ito. Default sa 0x1000. [Ang opsyong ito ay partikular sa
i386 PE na naka-target na port ng linker]

--salansan reserba
--salansan reserba,gumawa
Tukuyin ang dami ng memory na irereserba (at opsyonal na i-commit) na gagamitin bilang stack
para sa programang ito. Ang default ay 2Mb reserved, 4K committed. [Ang pagpipiliang ito ay
partikular sa i386 PE na naka-target na port ng linker]

--subsystem alin
--subsystem alin:pangunahing
--subsystem alin:pangunahing.minor
Tinutukoy ang subsystem kung saan ipapatupad ang iyong program. Ang mga legal na halaga para sa
alin ay "native", "windows", "console", "posix", at "xbox". Maaari mong opsyonal na itakda
ang bersyon ng subsystem din. Ang mga numerong halaga ay tinatanggap din para sa alin. [Ang pagpipiliang ito
ay partikular sa i386 PE na naka-target na port ng linker]

Ang 68HC11 at 68HC12 linker ay sumusuporta sa mga partikular na opsyon para makontrol ang memory bank
paglipat ng pagmamapa at pagbuo ng trampoline code.

--walang-trampolin
Hindi pinapagana ng opsyong ito ang pagbuo ng trampoline. Bilang default, ang trampolin ay
nabuo para sa bawat malayong function na tinatawag gamit ang isang "jsr" na pagtuturo (ito
nangyayari kapag ang isang pointer sa isang malayong function ay kinuha).

--bank-window pangalan
Ipinapahiwatig ng opsyong ito sa linker ang pangalan ng rehiyon ng memorya sa ALAALA
detalye na naglalarawan sa window ng memory bank. Ang kahulugan ng naturang rehiyon ay
pagkatapos ay ginamit ng linker upang makalkula ang paging at mga address sa loob ng memory window.

Kapaligiran


Maaari mong baguhin ang pag-uugali ng ld kasama ang mga variable ng kapaligiran na "GNUTARGET",
"LDEMULATION" at "COLLECT_NO_DEMANGLE".

Tinutukoy ng "GNUTARGET" ang format ng input-file object kung hindi mo gagamitin -b (o kasingkahulugan nito
--format). Ang halaga nito ay dapat isa sa mga pangalan ng BFD para sa isang format ng pag-input. Kung wala
"GNUTARGET" sa kapaligiran, ld gumagamit ng natural na format ng target. Kung "GNUTARGET"
ay nakatakda sa "default" pagkatapos ay sinusubukan ng BFD na tuklasin ang format ng pag-input sa pamamagitan ng pagsusuri sa binary
input file; madalas na nagtagumpay ang pamamaraang ito, ngunit may mga potensyal na ambiguities, dahil doon
ay walang paraan ng pagtiyak na ang magic number na ginamit upang tukuyin ang mga object-file na format ay
kakaiba. Gayunpaman, ang pamamaraan ng pagsasaayos para sa BFD sa bawat sistema ay naglalagay ng
maginoo na format para sa system na iyon muna sa listahan ng paghahanap, kaya ang mga ambiguity ay naresolba
pabor sa kombensiyon.

Tinutukoy ng "LDEMULATION" ang default na emulation kung hindi mo gagamitin ang -m pagpipilian Ang
Ang pagtulad ay maaaring makaapekto sa iba't ibang aspeto ng pag-uugali ng linker, partikular na ang default na linker
iskrip. Maaari mong ilista ang mga magagamit na emulasyon sa --verbose or -V mga pagpipilian. Kung ang
-m opsyon ay hindi ginagamit, at ang "LDEMULATION" kapaligiran variable ay hindi tinukoy, ang
Ang default na emulation ay depende sa kung paano na-configure ang linker.

Karaniwan, ang linker ay magiging default sa mga demangling na simbolo. Gayunpaman, kung
Ang "COLLECT_NO_DEMANGLE" ay nakatakda sa kapaligiran, pagkatapos ay magiging default ito sa hindi demangling
mga simbolo. Ang environment variable na ito ay ginagamit sa katulad na paraan ng "gcc" linker
programa ng pambalot. Ang default ay maaaring ma-override ng --demangle at --walang-demangle
mga pagpipilian.

Gamitin ang h8300-hitachi-coff-ld online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

  • 1
    DivFix ++
    DivFix ++
    Ang DivFix++ ay sa iyo AVI video repair at
    i-preview ang software. Ito ay dinisenyo para sa pagkumpuni
    at i-preview ang mga file na nasa download
    mula sa ed2k(emule), torrent, gnutella, ftp...
    I-download ang DivFix++
  • 2
    Komunidad ng JBoss
    Komunidad ng JBoss
    Mga proyektong hinimok ng komunidad na nagtatampok ng
    pinakabagong mga inobasyon para sa cutting edge
    apps. Ang aming pangunahing proyektong JBoss AS ay
    ang nangungunang Open Source,
    sumusunod sa pamantayan...
    I-download ang JBoss Community
  • 3
    Django Filer
    Django Filer
    Ang django Filer ay isang pamamahala ng file
    application para sa django na gumagawa
    mabilis na paghawak ng mga file at larawan.
    Ang django-filer ay isang pamamahala ng file
    aplikasyon para sa djang...
    I-download ang Django Filer
  • 4
    xCAT
    xCAT
    Extreme Cluster Administration Toolkit.
    Ang xCAT ay isang scalable cluster management
    at provisioning tool na nagbibigay
    kontrol ng hardware, pagtuklas, at OS
    diskful/di...
    I-download ang xCAT
  • 5
    PSI
    PSI
    Ang Psi ay cross-platform na makapangyarihang XMPP
    idinisenyo ang kliyente para sa mga may karanasang gumagamit.
    May mga build na magagamit para sa MS
    Windows, GNU/Linux at macOS.. Audience:
    Mga End User...
    I-download ang Psi
  • 6
    Blobby Volley 2
    Blobby Volley 2
    Opisyal na pagpapatuloy ng sikat
    Blobby Volley 1.x arcade game..
    Audience: Mga End User/Desktop. Gumagamit
    interface: OpenGL, SDL. Programming
    Wika: C++, Lua. C...
    I-download ang Blobby Volley 2
  • Marami pa »

Linux command

Ad