ld

ld(1)                        GNU Development Tools                       ld(1)



NAME
       ld - GNU linker (è¿æ¥å¨)


æ»è§ (SYNOPSIS)
       ld     [-o output] objfile...
              [-Aarchitecture] [-b input-format] [-Bstatic] [-Bdynamic]
              [-Bsymbolic] [-c commandfile] [--cref] [-d|-dc|-dp]
              [-defsym symbol = expression] [--demangle] [--no-demangle]
              [-e entry] [-embedded-relocs] [-E] [-export-dynamic] [-f name]
              [--auxiliary name] [-F name] [--filter name] [-format input-
              format] [-g] [-G size] [-h name] [-soname name] [--help] [-i]
              [-lar] [-Lsearchdir] [-M] [-Map mapfile] [-m emulation] [-n|-N]
              [-noinhibit-exec] [-no-keep-memory] [-no-warn-mismatch]
              [-Olevel] [-oformat output-format] [-R filename] [-relax]
              [-r|-Ur] [-rpath directory] [-rpath-link directory] [-S] [-s]
              [-shared] [-sort-common] [-split-by-reloc count]
              [-split-by-file] [-T commandfile] [-Ttext textorg]
              [-Tdata dataorg] [-Tbss bssorg] [-t] [-u sym] [-V] [-v]
              [--verbose] [--version] [-warn-common] [-warn-constructors]
              [-warn-multiple-gp] [-warn-once] [-warn-section-align]
              [--whole-archive] [--no-whole-archive] [--wrap symbol] [-X] [-x]

æè¿° (DESCRIPTION)
       ld å并 ä¸ç» ç®æ æ件(object) å åºæ件(archive), éå®ä½ æ°æ®é¨å, æ建
       符å·å¼ç¨(symbol reference). ä¸è¬è¯´æ¥, ç¼è¯ çæ å¯æ§è¡æ件 ç æåæ¥éª¤
       å°±æ¯ è°ç¨ ld.

       ld å¯ä»¥è¯»å ç¨ è¿æ¥å¨å½ä»¤è¯è¨(Linker Command Language) ç¼åç èæ¬æ件,
       å® è½å¤ 对 è¿æ¥è¿ç¨ æä¾ ç²¾ç¡® å å¨é¢ ç æ§å¶.  æ¬ æå页 ä¸è®¨è®º
       å½ä»¤è¯è¨; å¯åç `info' ç `ld' 项, æè æå ld: the GNU linker , éé¢æ
       å½ä»¤è¯è¨ ç ç»è å å¶ä» GNU linker ç å容.

       è¿ä¸ªçæ¬ ç ld ä½¿ç¨ éç¨BFDåº æä½ ç®æ æ件, ld è½å¤ 以 å¤ç§æ ¼å¼ 读å¥,
       è¿æ¥ å è¾åº ç®æ æ件 —ä¾å¦ COFF æ a.out, è½å¤ æ ä¸åçæ ¼å¼ è¿æ¥ å¨ä¸èµ·,
       产ç åç§ ææ ç ç®æ æ件.  ç¨ `objdump -i' å¯ä»¥ ååº åç§ ä½ç³»ç»æ æ¯æ ç
       æ ¼å¼ å表; å¦è§ objdump(1).

       GNU linker ä¸ä» çµæ´» 强大, è¿è½å¤ æ¯ å¶ä» linker æä¾ æ´å¤ ç è¯æ‐
       ä¿¡æ¯.  å¾å¤ linker åªè¦ ç¢°ä¸ ä¸ä¸ªé误 å°± ç«å»åæ¢ æ§è¡; è ld ä¸æå¯è½
       ä»ç¶ 继ç»æ§è¡, è¿æ · 容æ å®ä½åº å¶ä»é误 (æäºæåµä¸, 尽管åºäºé, ä»ç¶
       çæ è¾åºæ件).

       GNU linker ld ææ å®ç° æ´å¹¿æ³ ç éç¨èå´, å°½å¯è½ å¼å®¹ å¶ä» linker.  éè¿
       å½ä»¤è¡ å ç¯å¢åé, ç¨æ· å¯ä»¥ ç¨ ld æ§è¡ å¤ç§ æä½.


é项 (OPTIONS)
       è¿äºä¸°å¯ç å½ä»¤è¡é项 使人 æå° åæ, å¥½å¨ å®éä½¿ç¨ ä¸, å¤æ°æåµä¸
       åªéè¦ ææ¡ å¶ä¸ ä¸å°é¨å. ä¾å¦, å¨ ä¸ä¸ª æ åç, æä¾ ç¸åºæ¯æ ç Unix ç³»ç»
       ä¸, 常常 ç¨ ld è¿æ¥ æ åç Unix ç®æ æ件. å¦æè¦ è¿æ¥ hello.o:

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

       å® åè¯ ld çæ ä¸ä¸ª å«å output ç æ件 , å¶ä¸ è¿æ¥äº æ件 /lib/crt0.o å
       hello.o 以å åºæ件 libc.a (å¨ æ åæç´¢ç®å½ä¸).

       ld ç å½ä»¤è¡é项 å¯ä»¥ ä»»æé¡ºåº åºç°, çè³ éå¤åºç°. å¤æ° æåµ ä¸, å¦æ ç¨
       ä¸åç åæ° éå¤ åä¸ç§ é项, ld ä¸ä¼ åºç° æ´å¤çåå, ä¹ä¸ä¼ è¦ç 以åç åæ°. (æ
       å½ä»¤è¡ ä¸ å·¦è¾¹çåæ°)

       ä¾å¤æåµ — æäºé项 æ åå¤ä½¿ç¨ ç éè¦ — å¦ -A, -b (æçåç -format), -defsym,
       -L, -l, -R, å -u.

       å¾è¿æ¥ç ç®æ æ件 å表, å³ æ»è§ä¸ç objfile, å¯ä»¥ æ¾å¨ å½ä»¤è¡é项 ç
       åé¢, åé¢, æè æ··æå¶ä¸; ä½æ¯ ä¸è½ æ objfile æ¾ç½®äº æ个 é项å¼å³ å
       å®çåæ° ä¸é´.

       ä¸è¬è¯´æ¥ linker è¦æ± è³å° è¾å¥ ä¸ä¸ª ç®æ æ件, ä½æ¯ å¯ä»¥ ç¨ -l, -R
       è¾å¥ å¶ä»æ ¼å¼ ç äºè¿å¶æ件, æè ç¨ å½ä»¤è¯è¨ ç¼åç èæ¬æ件. å¦æ 没æ æå®
       äºè¿å¶æ ¼å¼ ç è¾å¥æ件, linker å°±ä¸è½ 产ç è¾åºæ件, èæ¯ æ¾ç¤º `No
       input files'.

       é项çåæ° å¿é¡» åºç°å¨ 代表 é项 ç åæ¯ åé¢, å¯ä»¥æ 空ç½ç¬¦, ä¹å¯ä»¥
       没æ.


       -Aarchitecture
              å¨ ç®åçæ¬ ç ld ä¸, è¿ä¸ª é项 ä»éç¨äº Intel 960 ä½ç³»ç³»å. å¨ ld
              ç 设置 ä¸, architecture åæ° æ¯ 960 ç³»å ç æå è¯å«å称 ä¹ä¸, ç±
              两个åæ¯ ç»æ; è¿ä¸ªé项 æåº ææç è¾åºç®æ , 对 è¾å¥æ件 ç
              ä¸å¼å®¹æ令 ä½åº è¦å.  å® è½å¤ æ¹å linker 对 åºæ件 ç æç´¢çç¥,
              ä»¥ä¾¿äº æ¯æ ä½ç³»ç¸å³åº, æ¹æ³æ¯ æ ä½ç³»è¯å«å称 æ·»å å¨ å¾æç´¢
              ç æ件å å°¾é¨.

              ä¾å¦, å¦æ ld å½ä»¤è¡ æ `-ACA' å `-ltry', linker å° æç´¢ (æ ¹æ®
              åç½®çè·¯å¾ å -L æå®çè·¯å¾) ä»¥ä¸ å称 ç åºæ件

              try
              libtry.a
              tryca
              libtryca.a


              å两项 æ¯ å¸¸è§åæ³; å两项 æºäº `-ACA'.

              å°æ¥åå¸ç ld å¯è½ 对 å¶ä» ä½ç³»ç»æ æä¾ ç±»ä¼¼åè½.

              å¯ä»¥ å¨ å½ä»¤è¡ä¸ ä½¿ç¨ å¤ä¸ª -A é项, åªè¦ 该 ä½ç³» å许 å
              ç®æ ä½ç³» ç¸è¿, å¶é项 使 ld å¨ æç´¢ -l æå®çåº ä¸, å¢å  å
              ä½ç³»ç»æå称 对åºçåº.


       -b input-format
              æå® è¾å¥ç®æ æ件 ç äºè¿å¶æ ¼å¼, ç®æ æ件 å¨ å½ä»¤è¡ ä¸ ç»åº,
              æ¾å¨ è¿ä¸ªé项 ç åé¢. ä¸è¬ ä¸éè¦ æå® è¿ä¸ªé项, ld ç
              缺çè¾å¥æ ¼å¼ é置为 å个æºå¨ ä¸ æå¸¸ç¨ ç æ ¼å¼. input-format
              æ¯ å符串, BFD åº æ¯æç æ ¼å¼ å称. é项 -format input-format
              èµ· ç¸åç ä½ç¨, èæ¬å½ä»¤ TARGET ä¹æ¯ ä¸æ ·.

              è¿æ¥ æäº ä¸å¯»å¸¸ç äºè¿å¶æ件 æ¶ éè¦ è¿ä¸ªé项. æè ä½¿ç¨ -b é项
              å¼ºè° æ ¼å¼åæ¢ (è¿æ¥ ä¸åæ ¼å¼ ç ç®æ æ件), æ¯å¦è¯´, å¨ æ¯ç»
              ç¹å®æ ¼å¼ ç ç®æ æ件 åé¢ ä½¿ç¨ -b input-format é项.

              ç¯å¢åé GNUTARGET ç¨äº æå® ç¼ºçæ ¼å¼. ä¹å¯ä»¥ å¨ èæ¬æ件 ä¸ ç¨
              TARGET å½ä»¤ å®ä¹ è¾å¥æ ¼å¼.


       -Bstatic
              ç¦æ¢ è¿æ¥ å±äº«åº. è¿ä¸ªé项 åªå¨ æ¯æ å±äº«åº ç å¹³å° ä¸ ææä¹.


       -Bdynamic
              è¿æ¥ å¨æåº. è¿ä¸ªé项 åªå¨ æ¯æ å±äº«åº ç å¹³å° ä¸ ææä¹,
              ä¸è¬è¯´æ¥ å® æ¯ ç¼ºçé项.


       -Bsymbolic
              å½ å建 å±äº«åº ç æ¶å, åªè¦ æå¯è½, å¨ å±äº«åº å ç¼è(bind
              reference) å¨å±ç¬¦å· å å®ä¹(definition). ä¸è¬è¯´æ¥, å许 è¿æ¥äº
              æ个 å±äº«åº ç ç¨åº è¦ç å±äº«åºå ç å®ä¹. è¿ä¸ªé项 åªå¨ æ¯æ
              å±äº«åº ç ELF å¹³å° ä¸ ææä¹.


       -c commandfile
              åè¯ ld ä» æ件 commandfile ä¸ è¯»å è¿æ¥ å½ä»¤. è¿äº å½ä»¤ å½»åºç
              è¦ç ld ç 缺ç è¿æ¥ æ ¼å¼ (èä¸æ¯ æ·»å ); commandfile å¿é¡»
              详尽ç æè¿° ç®æ æ ¼å¼ ç ææç»è.

              ä½  ä¹å¯ä»¥ å¨ å½ä»¤è¡ ä¸ ç´æ¥åµå¥ è¿æ¥å½ä»¤, æ èæ¬ åµå¨
              大æ¬å¼§ `{' å `}' ä¸é´.


       --cref è¾åº 交åå¼ç¨è¡¨(cross reference).  å¦æ åå»ºäº è¿æ¥æ å(linker
              map) æ件, 交åå¼ç¨è¡¨ å°± è¾åºå° æ åæ件 ä¸, å¦å éå¾ æ åè¾åº.


       -d

       -dc

       -dp    è¿ ä¸ä¸ªé项 æ¯ ä¸åäº, ä¸ºäº å¼å®¹ å¶ä» linker è åæ¶æä¾.  å³ä½¿
              å·²ç» æå® ld çæ å¯éå®ä½æ件 (-r), å®ä»¬ è½ä¸º å¬å±ç¬¦å·(common
              symbol) åé 空é´.  èæ¬å½ä»¤ FORCE_COMMON_ALLOCATION èµ·
              åæ ·ä½ç¨.


       -defsym symbol = expression
              å¨ è¾åºæ件 ä¸ å建 ä¸ä¸ª å¨å±ç¬¦å·, å® å«æ expression ç»åºç
              ç»å¯¹å°å. å¯ä»¥ å¨ å½ä»¤è¡ ä½¿ç¨ å¤ä¸ª è¿æ ·ç é项. è¿ä¸ª
              expression åªè½ ä½¿ç¨ æéç æ°å¦å½¢å¼: ååè¿å¶å¸¸æ°, å·²ç»åå¨ ç
              符å·åå.  æè ä½¿ç¨ + å - å å ååè¿å¶å¸¸æ° æ 符å·. å¦æ éè¦ æ´å¤æç
              表达å¼, èè ä½¿ç¨ å½ä»¤è¯è¨èæ¬.


       --demangle

       --no-demangle
              è¿äºé项 æ§å¶ æ¯å¦å¨ åºéä¿¡æ¯ å å¶ä»ä¿¡æ¯ ä¸, è¾åº
              å¯è¯»ç(demangle) 符å·å称. å¦æ 使ç¨äº demangle é项, linker
              å°½é使 符å·å称 容æç解: å»æ é¢å¤´ç ä¸å线 (å¦æ 被
              ç®æ æä»¶æ ¼å¼ éç¨); æ C++ é¾æç 符å·å称 (symbol name) 转æ¢æ
              å¯è¯»ç å称. 缺çæåµä¸ linker è¾åº å¯è¯»ç 符å·å称, é¤é
              è®¾ç½®äº ç¯å¢åé COLLECT_NO_DEMANGLE .  è¿äºé项 è½å¤ è¦ç
              缺çè¡ä¸º.


       -e entry
              ä½¿ç¨ entry (å¥å£) æ è¯ç¬¦ ä½ä¸º ç¨åº æ§è¡ ç å¼å§ç«¯, èä¸æ¯
              缺çå¥å£. å³äº 缺çå¥å£ å å¶ä» 设置 å¥å£ ç æ¹æ³ åè§ `info' ç
              ld' 项.


       -embedded-relocs
              è¿ä¸ªé项 ä»ç¨äº è¿æ¥ MIPSä¸ åµå¥ç PIC 代ç , GNU ç ç¼è¯å¨ å
              æ±ç¼å¨ ç¨ -membedded-pic é项 è½å¤ çæ è¿ç§ä»£ç . å®ä½¿ linker
              å建 ä¸å¼  è¡¨æ ¼, ç¨äº å¨ è¿è¡çæ¶å, éå®ä½ ä»»ä½ è¢« éæåå§å 为
              æéå¼ ç æ°æ®. è¯¦è§ testsuite/ld-empic ç 代ç .


       -E

       -export-dynamic
              å½ å建 ELF æ件 æ¶, æ ææ ç¬¦å· å å¥ å¨æ符å·è¡¨.  ä¸è¬è¯´æ¥,
              å¨æ符å·è¡¨ åªåå« å¨æç®æ åº(dynamic object) éè¦ç 符å·. ç¨
              dlopen ç æ¶å éè¦ è¿ä¸ª é项.


       -f name

       --auxiliary name
              å建 ELF å±äº«ç®æ åº æ¶, æ åé¨ç DT_AUXILIARY å段 设置为
              name.  å® åè¯ å¨ælinker, æ 该 å±äº«ç®æ åº ç 符å·è¡¨ ç¨å
              å±äº«ç®æ  name ç 符å·è¡¨ ç è¾å©è¿æ»¤å¨.


       -F name

       --filter name
              å建 ELF å±äº«ç®æ åº æ¶, æ åé¨ç DT_FILTER å段 设置为 name.
              å® åè¯ å¨ælinker, æ 该 å±äº«ç®æ åº ç 符å·è¡¨ ç¨å å±äº«ç®æ
              name ç 符å·è¡¨ ç è¾å©è¿æ»¤å¨.


       -format input-format
              çåäº -b input-format.


       -g     è设项; ç¨äº å¼å®¹ å¶ä» å·¥å·.


       -G size
              æ ä½¿ç¨ GP å¯åå¨ ä¼åç ç®æ (æ件) å¤§å° éå¶ä¸º size .  ç¨äº MIPS
              ECOFF, 对 å¶ä» ç®æ æä»¶æ ¼å¼ æ æ.


       -h name

       -soname name
              å建 ELF å±äº«ç®æ åº æ¶, æ åé¨ç DT_SONAME å段 设置为 name.
              å¦æ æ个 å¯æ§è¡æ件 è¿æ¥äº å«æ DT_SONAME å段 ç å±äº«ç®æ åº, å½
              该ç¨åº è¿è¡ æ¶, å¨æ linker è¯å¾ æ ¹æ® DT_SONAME å段 è°å¥
              å±äº«ç ç®æ åº, è ä¸ä½¿ç¨ æä¾ç» linker ç æ件å.


       --help å¨ æ åè¾åº æ¾ç¤º å½ä»¤è¡é项 ç æè¦, ç¶å ç»æ. è¿ä¸ªé项 å
              --version é项 使ç¨äº 两个 ç横线, ä¸æ¯ ä¸ä¸ª, ç®çæ¯ å¼å®¹
              å¶ä» GNU ç¨åº.  åªç¨ ä¸ä¸ª ç横线 ç é项 æ¯ä¸ºäº å¼å®¹ å¶ä»
              linker.


       -i     æ§è¡ å¢éè¿æ¥(incremental link), çåäº -r é项.


       -lar   å¨ è¿æ¥æ件 å表 ä¸ å¢å  å½æ¡£åºæ件 ar.  å¯ä»¥ å¤æ¬¡ 使ç¨
              è¿ä¸ªé项. å¡æå® ä¸é¡¹ ar , ld å°±ä¼ å¨ è·¯å¾å表 ä¸ å¢å  ä¸é¡¹
              对 libar.a ç æç´¢.


       -Lsearchdir
              è¿ä¸ªé项 å° è·¯å¾ searchdir æ·»å  å° è·¯å¾å表 ä¸å», ld å¨
              è¿ä¸ª å表 ä¸ æç´¢ å½æ¡£åº. å¯ä»¥ å¤æ¬¡ ä½¿ç¨ è¿ä¸ªé项.

              缺çç æ索路å¾é (ä¸ä½¿ç¨ -L æ¶) åå³äº ld 使ç¨ç
              模æ模å¼(emulation) åå¶ éç½®.  å¨ è¿æ¥èæ¬ ä¸, å¯ä»¥ ç¨
              SEARCH_DIR å½ä»¤ æå® è·¯å¾.


       -M     å¨ æ åè¾åº æ¾ç¤º  è¿æ¥æ å — æå³ ld æ ç¬¦å· æ å°å° ä½å¤ ç è¯æ‐
              ä¿¡æ¯, 以å å¨å±å¬å±åå¨å¨ ç åé ä¿¡æ¯.


       -Map mapfile
              æ è¿æ¥æ å è¾åºå° mapfile æ件 ä¸ — æå³ ld æ ç¬¦å· æ å°å° ä½å¤ ç
              è¯æä¿¡æ¯, 以å å¨å±å¬å±åå¨å¨ ç åé ä¿¡æ¯.


       -m emulation
              模仿 emulation è¿æ¥å¨.  å¯ä»¥ ç¨ --verbose æ -V é项 ååº ææç
              模æ项.  è¿ä¸ªé项 è¦ç ç¼è¯ è¿å» ç 缺ç项.


       -N     æå® å¯è¯»å ç æ£æ å æ°æ® è(section). å¦æ è¾åºæ ¼å¼ æ¯æ Unix
              é£æ ¼ç å¹»æ°(magic number), å è¾åºæ件 æ 记为 OMAGIC.

              å½ ä½¿ç¨ `-N' é项 æ¶, linker ä¸å æ°æ®æ®µ ç 页对é½(page-
              align).


       -n     设置 æ£æ段 为 åªè¯», å¦æ æå¯è½, NMAGIC 为 å¯å.


       -noinhibit-exec
              ä¸è¬è¯´æ¥, å¦æ è¿æ¥ç æ¶å åç é误, linker ä¸ä¼ 产ç è¾åºæ件.
              使ç¨äº è¿ä¸ª æ å¿é项, åªè¦ ä¸åº è´å½å·®é, ä»è½å¤ 产ç
              è¾åºæ件.


       -no-keep-memory
              linker é常 çºç² åå, ä¼å é度, å® æ è¾å¥æ件 ç 符å·è¡¨ ç¼å²å¨
              ååä¸.  è¿ä¸ªé项 使 linker å¿è¦æ¶ éå¤è¯»å 符å·è¡¨, 以便 ä¼å
              åå使ç¨. è¿æ¥ 大å å¯æ§è¡æ件 ç æ¶å, linker æå¯è½ åå ä¸å¤, æ¤æ¶
              å¯ä»¥ è¯è¯ è¿ä¸ªé项.


       -no-warn-mismatch
              ä¸è¬æåµä¸, å¦æ è¯å¾ è¿æ¥ æäº ä¸å¹é ç è¾å¥æ件, æ¯å¦è¯´, æ ä¸å
              å¤çå¨ ç¼è¯ ç, æè å·æ ä¸åç åè顺åº(endianness), linker å°±ä¼ æ¥é.
              è¿ä¸ªé项 åè¯ linker é»è®¸ è¿ç§ é误. è¦ å°å¿ä½¿ç¨ è¿ä¸ªé项,
              é¤é ä½  æ£å¨å æäº ç¹æ® æä½, èä¸ è½å¤ ç¡®å® ä¸éè¦ linker æ¥é.


       -o output
              output ç¨æ¥ æå® ld çæç ç¨åºå; å¦æ 没æ ä½¿ç¨ è¿ä¸ªé项, 缺çåå
              æ¯ `a.out'.  èæ¬å½ä»¤ OUTPUT èµ· åæ · ä½ç¨.


       -Olevel
              çæ ä¼åç è¾åºæ件. è¿ä¸ªé项 å ç¨ æ¯è¾å¤ ç æ¶é´, å æ¤ ä» å¸¸ç¨äº
              æç»æ件 ç çæ.  level æ¯ æ°å¼åæ°. ä»»ä½ å¤§äºé¶ ç åæ° æå³ç è¦æ±
              ä¼å.


       -oformat output-format
              æå® è¾åºç®æ æ件 ç äºè¿å¶æ ¼å¼. ä¸è¬ ä¸éè¦ æå® è¿ä¸ªé项, ld ç
              缺ç è¾åºæ ¼å¼ é置为 å个æºå¨ ä¸ æå¸¸ç¨ ç æ ¼å¼. output-format
              æ¯ ä¸ä¸ª å符串, BFD åº æ¯æç æ ¼å¼ å称. èæ¬å½ä»¤ OUTPUT_FORMAT
              ä¹å¯ä»¥ æå® è¾åºæ ¼å¼, ä½æ¯ è¿ä¸ªé项 è½å¤ è¦ç æ å®.


       -R filename
              ä» æ件 filename ä¸ è¯»å 符å·å称 åå¶ å°å, ä½æ¯ ä¸å éå®ä½,
              ä¸ä¼ éå° è¾åºç«¯.  å® å¯ä»¥ 使 è¾åºæ件 符å·å¼ç¨ å¶ä»ç¨åºä¸
              å®ä¹ç ç»å¯¹å°å.


       -relax è¿ä¸ªé项 ç ææ åå³äº æºå¨, ç®å åªæ¯æ H8/300.

              å¨ æäº å¹³å° ä¸ å¯ä»¥ ä½¿ç¨ è¿ä¸ªé项 å å¨å±ä¼å, å® è®© linker
              è§£å³ ç¨åºä¸ ç å°åå¤ç, ä¾å¦ å¨ è¾åºç®æ æ件 ä¸ ç¼å(relax)
              å°åæ¨¡å¼ ä»¥å åæ (synthesize) æ°æ令.

              å¶ä»å¹³å° ä¹æ¥å `-relax' é项, ä½æ¯ ä¸èµ·ä½ç¨.


       -r     çæ å¯éå®ä½ è¾åº — å°±æ¯è¯´, çæç è¾åºæ件 è½å¤ ä¾æ¬¡ æ为 ld ç
              è¾å¥, ä¸è¬ 称ä¹ä¸º ä¸å®å¨(partial) è¿æ¥. å® æ ä¸ä¸ª å¯æåº, å¨
              æ¯æ æ å Unix å¹»æ°(magic number) ç ç¯å¢ ä¸, è¿ä¸ªé项 æ è¾åºæ件
              ç å¹»æ° è®¾ç½®æ OMAGIC. å¦æ 没æ æå® è¿ä¸ªé项, linker çæ
              ç»å¯¹å®ä½ ç æ件.  è¿æ¥ C++ ç¨åºæ¶, è¿ä¸ªé项 ä¸ä¼  解æ åº å¯¹
              æé å(constructor) ç å¼ç¨(reference); ä¸å¦¨ æ¹ç¨ -Ur é项.

              è¿ä¸ªé项 ç ææ å -i ä¸æ ·.


       -rpath directory
              å¢å  ä¸æ¡ 对 è¿è¡æ¶(runtime)åº ç æ索路å¾. è¿ä¸ªé项 ç¨äº è¿æ¥
              ELF å¯æ§è¡ æ件 å å±äº«ç®æ åº. ææ -rpath é项 ç åæ° è¢« å并,
              ç¶å ä¸èµ· ä¼ é ç» è¿è¡æ¶ linker, è¿è¡æ¶ linker å¨ è¿è¡ ç æ¶å
              ä½¿ç¨ è¿äº è·¯å¾ å¯»æ¾ å±äº«ç®æ åº.  -rpath ä¹å¯ä»¥ ç¨æ¥ å®ä½
              å±äº«ç®æ åº å¼ç¨ç å±äº«ç®æ åº; åè§ å¯¹ -rpath-link é项 ç åè¿°.
              å¦æ è¿æ¥ ELF å¯æ§è¡æ件 æ¶ æ²¡æ æå® -rpath é项, linker 就使ç¨
              ç¯å¢åé LD_RUN_PATH ç å容 — åªè¦ è¿ä¸ª ç¯å¢åé åå¨.

              -rpath é项 è½å¤ ç¨å¨ SunOS ä¸, 缺çç¶åµä¸, linker å¯ä»¥ æ ¹æ®
              ç»åºç -L é项 å½¢æ è¿è¡æ¶ æ索路å¾.  å¦æ 使ç¨äº -rpath é项,
              è¿è¡æ¶ æç´¢è·¯å¾ ä» -rpath ä¸ äº§ç, è å¿½ç¥ -L é项.  è¿ä¸ç¹
              æå©äº ä½¿ç¨ gcc, å¨ NFS æä»¶ç³»ç» ä¸, gcc å¯è½ 产ç è®¸å¤ -L
              é项.


       -rpath-link directory
              ä½¿ç¨ ELF æ SunOS ç æ¶å, æäº å±äº«åº å¯è½ éè¦ å¶ä» å±äº«åº.
              è¿ç§æåµ ä¸è¬ åçå¨ æ个 ld -shared è¿æ¥ ä¸, è¾å¥æ件 åå«äº
              å±äº«åº.

              å¦æ linker éå° è¿æ ·ç ä¾èµæåµ, å½ å® æ§è¡ éå±äº«, ä¸å¯éå®ä½ ç
              è¿æ¥ æ¶, linker å° èªå¨ å¯»æ¾ æéç å±äº«åº, å¦æ å®ä»¬ 没æ 被
              æ¾æ åå«, å°± æ å®ä»¬ åå«å° è¿æ¥ ä¸. å¨ è¿ç§æåµä¸, -rpath-link
              é项 æå®äº æå æç´¢ ç ç®å½é.  -rpath-link è½å¤ æå® ä¸æ¹ ç®å½,
              ç®å½ ç¨ åå· éå¼. ä¹å¯ä»¥ ç¨ è¿äº ç®å½å ä½ä¸º åæ°, éå¤ ä½¿ç¨
              è¿ä¸ª é项.

              å¦æ 没æ æ¾å° éè¦ç å±äº«åº, linker 产ç ä¸ä¸ª è¦å, ä½æ¯ 继ç»
              è¿æ¥.


       -S     å»æ è¾åºæ件 ä¸ç è°è¯ç¬¦å·ä¿¡æ¯ (ä½ä¸æ¯ ææ符å·).


       -s     å»æ è¾åºæ件 ä¸ç å¨é¨ 符å·ä¿¡æ¯.


       -shared
              å建 ä¸ä¸ª å±äº«åº. ç®å åªæ¯æ ELF å SunOS å¹³å° (å¨ SunOS ä¸,
              è¿ä¸ªé项 ä¸æ¯ å¿é¡»ç, å¦æ 没æ ä½¿ç¨ -e é项, èä¸ åå¨ ä¸ç¡®å® ç
              符å·, linker å° èªå¨ å建 å±äº«åº).


       -sort-common
              ld é常 æ å¨å±å¬å±ç¬¦å· æ¾å° éå½ç è¾åºè, æç§ å¤§å° æåº.  é¦åæ¯
              ååè符å·, ç¶åæ¯ ååè, æ¥ä¸æ¥æ¯ ååè, éåæ¯ å¶ä»ç.  å®ç ç®çæ¯ é²æ¢
              符å·é´ å 为 æå¸éå¶ åºç° é´é.  ä½¿ç¨ è¿ä¸ªé项 å¯ä»¥ ç¦æ¢ æåº.


       -split-by-reloc count
              å¨ è¾åºæ件 ä¸ å建 éå è(extra section), ä½¿å¾ è¾åºæ件 ä¸, 没æ
              æä¸ä¸ª è¾åºè åå« å¤§äº count 个 éå®ä½é¡¹. å® ç¨äº 产ç 大å
              å¯éå®ä½ COFF ç®æ æ件, å¯ä»¥ æå¥å° æäº å®æ¶åæ ¸ ä¸; å 为 COFF
              ä¸è½ å¨ åä¸èå åæ¾ 65535 以ä¸ç éå®ä½é¡¹.  注æ, æäº
              ç®æ æä»¶æ ¼å¼ ä¸æ¯æ ä»»æ åè, æ¤æ¶ è¿ä¸ªé项 å°ä¼ æä½ å¤±è´¥.  æ‐
              ¤å¤, linker ä¸è½å¤ åå² è¾å¥è, ç¶å éæ°åé, å æ¤ å¦æ æ个 è¾å¥è åå«
              count 以ä¸ç éå®ä½é¡¹, ç¸åºç è¾åºè å° åå« åæ ·å¤ç éå®ä½é¡¹.


       -split-by-file
              ç±»ä¼¼äº -split-by-reloc , ä½æ¯ å®ä¸º æ¯ä¸ª è¾å¥æ件 建ç«ä¸ä¸ª
              æ°ç è¾åºè.


       -Tbss org

       -Tdata org

       -Ttext org
              æ org ä½ä¸º è¾åºæ件 ç 段 èµ·å§å°å — ç¹å«æ¯ — bss, data, æ text
              段.  org å¿é¡»æ¯ ååè¿å¶æ´æ°.


       -T commandfile
              çåäº -c commandfile; ç¨äº å¼å®¹ å¶ä»å·¥å·.


       -t     å¨ ld å¤ç è¾å¥æ件 ç æ¶å æ¾ç¤º æ件å.


       -u sym æ sym ä½ä¸º æªå®ä¹(undefined) ç ç¬¦å· éå¥ è¾åºæ件.  è¿æ ·å
              å¯ä»¥, ä¾å¦, ä¿ä½¿ linker ä» æ ååº è¿æ¥ æ个 éå ç模å.  å许
              ä½¿ç¨ å¤ä¸ª -u é项 è¾å¥ å¤ä¸ª æªå®ä¹ 符å·.


       -Ur    å¯¹äº é¤ C++ 以å¤ç ä»»ä½ ç¨åº, è¿ä¸ªé项 çåäº -r: çæ å¯éå®ä½ ç
              è¾åº — å°±æ¯è¯´, è½å¤ ä¾æ¬¡ è¾å¥ ld ç è¾åºæ件. è¿æ¥ C++ ç¨åº ç
              æ¶å, -Ur å° è§£æ 对 æé å(constructor) ç å¼ç¨(reference), è¿ä¸ç¹
              å -r ä¸å.


       --verbose
              æ¾ç¤º ld ç çæ¬å·, ååº æ¯æç 模æ项(emulation). æ¾ç¤º åªäº
              è¾å¥æ件 è½å¤ æå¼, åªäº ä¸è½,


       -v, -V æ¾ç¤º ld ç çæ¬å·.  æ¤å¤ -V é项 è½å¤ ååº æ¯æç 模æ项.


       --version
              æ¾ç¤º ld ç çæ¬å· ç¶å ç»æ.


       -warn-common
              å½ å¬å±ç¬¦å· å å¶ä» å¬å±ç¬¦å· å并 æ¶, æè å æ个 符å·å®ä¹ å并
              æ¶, linker å°±ååº è¦å. Unix ç³»ç»ç linker å许 è¿ç§ æäº èç ç
              åæ³, å¶ä» æä½ç³»ç» å ä¸è¡. è¿ä¸ªé项 帮å©ä½  å¨ å并 å¨å±ç¬¦å·
              ç æ¶å åç° æ½å¨é®é¢.


       -warn-constructors
              å¦æ 使ç¨äº å¨å±æé å(global constructor), linker å°±ååº è¦å.  å®
              åªå¯¹ æäº ç®æ æ件ç»æ æç¨, å¯¹äº å¦ COFF æ ELF, æ¤ linker ä¸è½å¤
              æ£æµ å¨å±æé å ç 使ç¨æåµ.


       -warn-multiple-gp
              å¦æ è¾åºæ件 éè¦ å¤ä¸ª å¨å±æéå¼, linker å°±ååº è¦å. è¿ä¸ªé项
              åªè½ ç¨äº æäº å¤çå¨, å¦ Alpha.


       -warn-once
              对 æ¯ä¸ª æªå®ä¹ç¬¦å· åª è¦å ä¸æ¬¡, èä¸æ¯ æ¯æ¬¡ å¼ç¨ è¿ä¸ªç¬¦å·
              é½ è¦å.


       -warn-section-align
              å¦æ æ个 è¾åºè(section) ç å°å å 为 è¾¹çå¯¹é½ è åç æ¹å, linker
              å°±ååº è¦å. å¸åæåµä¸ ç± è¾å¥è 设置 è¾¹ç, åªæ ä¸å æç¡®æå® ç æ¶å
              å°å æä¼ æ¹å; å°±æ¯è¯´, SECTIONS å½ä»¤ 没æ æåº è¯¥è ç å¼å§å°å.


       --whole-archive
              å¯¹äº å½ä»¤è¡ ä¸ --whole-archive é项 æå°ç æ¯ä¸ª å½æ¡£åº, è¿æ¥æ¶
              è¿å¥ å½æ¡£åº ç å¨é¨ ç®æ æ件, èä¸æ¯ å¨ å½æ¡£åº ä¸ æç´¢ æéç
              ç®æ æ件. ä¸è¬ç¨äº æ å½æ¡£åºæ件 转åæ å±äº«åºæ件, 迫使 å¨é¨
              ç®æ æ件 è¿å¥ å±äº«åº.


       --no-whole-archive
              å³é --whole-archive é项 对 å½æ¡£åº ç å½±å.


       --wrap symbol
              对 symbol ä½¿ç¨ åè£å½æ°(wrapper function). ä»»ä½ å¯¹ symbol
              æªå®ä¹ ç å¼ç¨ (undefined reference) å° è§£æ为 __wrap_symbol.
              ä»»ä½ å¯¹ __real_symbol æªå®ä¹ ç å¼ç¨ å° è§£æ为 symbol.


       -X     å é¤ å¨é¨ 临æ¶ç å±é¨ç¬¦å·. 大å¤æ° ç®çæ件 ä¸, è¿äº å±é¨ç¬¦å· ç
              åå ç¨ `L' å å¼å¤´.


       -x     å é¤ å¨é¨ å±é¨ç¬¦å·.


ç¯å¢ (ENVIRONMENT)
       éè¿ ç¯å¢åé GNUTARGET å¯ä»¥ æ¹å ld ç è¡ä¸º.

       å¦æ 没æ ä½¿ç¨ -b é项 (æ ç¸åç -format), GNUTARGET å³å®äº è¾å¥æ件 ç
       ç®æ æ ¼å¼, å¶å¼ åºä¸º BFDç å称ä¹ä¸.  å¦æ 没æ GNUTARGET  ç¯å¢åé, ld
       å°±ä½¿ç¨ ä¸»æºç æ¬å°æ ¼å¼. å¦æ GNUTARGET 设置为 default, BFD éè¿
       æ£æ¥ è¾å¥æ件 ç äºè¿å¶æ ¼å¼ å¤æ è¾å¥æ ¼å¼; è¿ä¸ªæ¹æ³ é常 ææ, ä½ éå« æ‐
       §ä¹, è¿æ¯å 为 没æ åæ³ ä¿è¯ æ å¿ ç®æ æä»¶æ ¼å¼ ç å¹»æ° æ¯ å¯ä¸ç.
       ä¸è¿, åä¸ªç³»ç» éç½® BFD ç æ¶å, ä¼æ ç³»ç» çº¦å®çæ ¼å¼ æ¾å¨ æç´¢å表 ç
       åé¢, å æ¤ è½å¤ æç§ çº¦å® æ¶é¤ æ§ä¹.


å¦è§ (SEE ALSO)
       objdump(1)
       `ld' å `binutils' 项 ( info)
       ld: the GNU linker, Steve Chamberlain and Roland Pesch; The GNU Binary
       Utilities, Roland H. Pesch.


COPYING
       Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 1998 Free Software
       Foundation, Inc.

       Permission is granted to make and distribute verbatim copies of this
       manual provided the copyright notice and this permission notice are
       preserved on all copies.

       Permission is granted to copy and distribute modified versions of this
       manual under the conditions for verbatim copying, provided that the
       entire resulting derived work is distributed under the terms of a
       permission notice identical to this one.

       Permission is granted to copy and distribute translations of this
       manual into another language, under the above conditions for modified
       versions, except that this permission notice may be included in
       translations approved by the Free Software Foundation instead of in the
       original English.



[ä¸æçç»´æ¤äºº]
       å¾æ <xuming@users.sourceforge.net>

[ä¸æçææ°æ´æ°]
       2003/05/13 第ä¸ç

ãä¸å½Linux论åmanæå页翻è¯è®¡åã
       http://cmpp.linuxforum.net

è·
       æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
       ä¸æ man æå页计åï¼https://github.com/man-pages-zh/manpages-zh



cygnus support                  17 August 1992                           ld(1)