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)