總覽 (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 , 但是
它爲 每個 輸入文件
建立一個 新的
輸出節.
- -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.
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>
《中國Linux論壇man手冊頁翻譯計劃》
http://cmpp.linuxforum.net
跋
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh