Tiếng AnhTiếng PhápTiếng ĐứcTiếng ÝBồ Đào NhaTiếng NgaTiếng Tây Ban Nha

Biểu tượng yêu thích OnWorks

mips64-linux-gnuabi64-ld - Trực tuyến trên đám mây

Chạy mips64-linux-gnuabi64-ld trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

Đây là lệnh mips64-linux-gnuabi64-ld có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


ld - Trình liên kết GNU

SYNOPSIS


ld [lựa chọn] objfile hữu ích. Cảm ơn !

MÔ TẢ


ld kết hợp một số đối tượng và tệp lưu trữ, định vị lại dữ liệu của chúng và gắn biểu tượng
người giới thiệu. Thông thường, bước cuối cùng trong quá trình biên dịch chương trình là chạy ld.

ld chấp nhận các tệp Ngôn ngữ lệnh của Trình liên kết được viết bằng một tập hợp siêu của Trình chỉnh sửa Liên kết của AT&T
Cú pháp Ngôn ngữ Lệnh, để cung cấp khả năng kiểm soát rõ ràng và toàn bộ quá trình liên kết.

Trang người đàn ông này không mô tả ngôn ngữ lệnh; xem ld nhập "thông tin" cho đầy đủ
chi tiết về ngôn ngữ lệnh và các khía cạnh khác của trình liên kết GNU.

Phiên bản này của ld sử dụng các thư viện BFD mục đích chung để hoạt động trên các tệp đối tượng. Cái này
cho phép ld để đọc, kết hợp và ghi các tệp đối tượng ở nhiều định dạng khác nhau --- cho
ví dụ, COFF hoặc "a.out". Các định dạng khác nhau có thể được liên kết với nhau để tạo ra bất kỳ
loại tệp đối tượng có sẵn.

Ngoài tính linh hoạt của nó, trình liên kết GNU hữu ích hơn các trình liên kết khác trong việc cung cấp
thông tin chuẩn đoán. Nhiều trình liên kết từ bỏ thực thi ngay lập tức khi gặp phải
lỗi; bất cứ khi nào có thể, ld tiếp tục thực thi, cho phép bạn xác định các lỗi khác
(hoặc, trong một số trường hợp, để lấy tệp đầu ra bất chấp lỗi).

Trình liên kết GNU ld có nghĩa là bao gồm một loạt các tình huống và tương thích với nhau
càng tốt với các trình liên kết khác. Do đó, bạn có nhiều lựa chọn để kiểm soát
hành vi.

LỰA CHỌN


Trình liên kết hỗ trợ rất nhiều tùy chọn dòng lệnh, nhưng trong thực tế, một vài tùy chọn trong số đó
được sử dụng trong bất kỳ ngữ cảnh cụ thể nào. Ví dụ, việc sử dụng thường xuyên ld là để liên kết
các tệp đối tượng Unix tiêu chuẩn trên hệ thống Unix tiêu chuẩn, được hỗ trợ. Trên một hệ thống như vậy, để
liên kết tệp "hello.o":

Tôi đồng ý /lib/crt0.o hello.o -lc

Điều này nói với ld để tạo ra một tệp có tên là đầu ra là kết quả của việc liên kết tệp
"/lib/crt0.o" với "hello.o" và thư viện "libc.a", sẽ xuất phát từ tiêu chuẩn
tìm kiếm thư mục. (Xem thảo luận của -l tùy chọn bên dưới.)

Một số tùy chọn dòng lệnh để ld có thể được chỉ định tại bất kỳ điểm nào trong dòng lệnh.
Tuy nhiên, các tùy chọn tham chiếu đến tệp, chẳng hạn như -l or -T, khiến tệp được đọc tại
tại đó tùy chọn xuất hiện trong dòng lệnh, liên quan đến các tệp đối tượng và
các tùy chọn tệp khác. Việc lặp lại các tùy chọn không phải tệp với một đối số khác sẽ có
không có thêm hiệu ứng hoặc ghi đè các lần xuất hiện trước (những lần xuất hiện ở bên trái lệnh
dòng) của tùy chọn đó. Các tùy chọn có thể được chỉ định một cách có ý nghĩa nhiều lần là
được lưu ý trong các mô tả dưới đây.

Đối số không phải tùy chọn là tệp đối tượng hoặc tệp lưu trữ được liên kết với nhau. Họ
có thể theo sau, đứng trước hoặc được trộn lẫn với các tùy chọn dòng lệnh, ngoại trừ một tệp đối tượng
đối số có thể không được đặt giữa một tùy chọn và đối số của nó.

Thông thường trình liên kết được gọi với ít nhất một tệp đối tượng, nhưng bạn có thể chỉ định
các dạng tệp đầu vào nhị phân sử dụng -l, -Rvà ngôn ngữ lệnh script. Nếu như Không nhị phân
tất cả các tệp đầu vào đều được chỉ định, trình liên kết không tạo ra bất kỳ đầu ra nào và phát hành
tin nhắn Không đầu vào các tập tin.

Nếu trình liên kết không thể nhận ra định dạng của tệp đối tượng, nó sẽ giả định rằng nó là
tập lệnh trình liên kết. Một tập lệnh được chỉ định theo cách này bổ sung cho tập lệnh trình liên kết chính được sử dụng cho
liên kết (tập lệnh trình liên kết mặc định hoặc tập lệnh được chỉ định bằng cách sử dụng -T). Điều này
tính năng cho phép trình liên kết liên kết với một tệp có vẻ là một đối tượng hoặc một
lưu trữ, nhưng thực sự chỉ xác định một số giá trị ký hiệu hoặc sử dụng "INPUT" hoặc "GROUP" để
tải các đối tượng khác. Chỉ định một tập lệnh theo cách này chỉ làm tăng thêm trình liên kết chính
script, với các lệnh phụ được đặt sau script chính; sử dụng -T tùy chọn để thay thế
hoàn toàn là tập lệnh trình liên kết mặc định, nhưng lưu ý tác dụng của lệnh "INSERT".

Đối với các tùy chọn có tên là một chữ cái, các đối số tùy chọn phải tuân theo
thư tùy chọn không có khoảng trắng xen vào hoặc được cung cấp dưới dạng các đối số riêng biệt
ngay sau tùy chọn yêu cầu chúng.

Đối với các tùy chọn có tên là nhiều chữ cái, một hoặc hai dấu gạch ngang có thể đứng trước
tên tùy chọn; Ví dụ, -trace-ký hiệu- ký hiệu dấu vết là tương đương. Lưu ý --- có
là một ngoại lệ đối với quy tắc này. Nhiều tùy chọn chữ cái bắt đầu bằng chữ thường 'o'
chỉ có thể đứng trước hai dấu gạch ngang. Điều này là để giảm sự nhầm lẫn với -o Lựa chọn. Vì thế
ví dụ -omagic đặt tên tệp đầu ra thành ma thuật trong khi --omagic đặt NMAGIC
cờ trên đầu ra.

Các đối số cho các tùy chọn gồm nhiều chữ cái phải được phân tách khỏi tên tùy chọn bằng một
dấu bằng hoặc được cung cấp dưới dạng các đối số riêng biệt ngay sau tùy chọn
yêu cầu họ. Ví dụ, - ký hiệu dấu vết foo--trace-symbol = foo là tương đương.
Các chữ viết tắt duy nhất của tên các tùy chọn gồm nhiều chữ cái được chấp nhận.

Lưu ý --- nếu trình liên kết đang được gọi gián tiếp, thông qua trình điều khiển trình biên dịch (ví dụ: gcc) sau đó
tất cả các tùy chọn dòng lệnh của trình liên kết phải được bắt đầu bằng - Tôi, (hoặc bất cứ điều gì phù hợp
cho trình điều khiển trình biên dịch cụ thể) như thế này:

gcc -Wl, - foo.o bar.o -Wl của nhóm bắt đầu, - nhóm cuối

Điều này rất quan trọng, bởi vì nếu không, chương trình điều khiển trình biên dịch có thể âm thầm bỏ
tùy chọn trình liên kết, dẫn đến một liên kết xấu. Sự nhầm lẫn cũng có thể phát sinh khi chuyển các tùy chọn
yêu cầu các giá trị thông qua trình điều khiển, vì việc sử dụng khoảng trắng giữa tùy chọn và đối số
hoạt động như một dải phân cách và khiến trình điều khiển chỉ chuyển tùy chọn cho trình liên kết và
đối số với trình biên dịch. Trong trường hợp này, cách đơn giản nhất là sử dụng các dạng kết hợp của cả hai
các tùy chọn một chữ cái và nhiều chữ cái, chẳng hạn như:

gcc foo.o bar.o -Wl, -eENTRY -Wl, -Map = a.map

Dưới đây là bảng các công tắc dòng lệnh chung được chấp nhận bởi trình liên kết GNU:

@hồ sơ
Đọc các tùy chọn dòng lệnh từ hồ sơ. Các tùy chọn đã đọc được chèn vào vị trí của
nguyên bản @hồ sơ Lựa chọn. Nếu như hồ sơ không tồn tại, hoặc không thể đọc được, thì tùy chọn
sẽ được xử lý theo nghĩa đen, và không bị xóa.

Tùy chọn trong hồ sơ được phân tách bằng khoảng trắng. Một ký tự khoảng trắng có thể được bao gồm
trong một tùy chọn bằng cách đặt toàn bộ tùy chọn trong dấu ngoặc kép hoặc đơn. Không tí nào
ký tự (bao gồm cả dấu gạch chéo ngược) có thể được thêm vào bằng cách thêm tiền tố vào ký tự là
bao gồm một dấu gạch chéo ngược. Các hồ sơ bản thân nó có thể chứa @ bổ sunghồ sơ tùy chọn; không tí nào
các tùy chọn như vậy sẽ được xử lý một cách đệ quy.

-a từ khóa
Tùy chọn này được hỗ trợ để tương thích HP / UX. Các từ khóa đối số phải là một trong những
Các dây lưu trữ, chia sẻ, hoặc là mặc định. -marchive về mặt chức năng tương đương với
-Bình tĩnhvà hai từ khóa khác có chức năng tương đương với - Động lực học. Điều này
tùy chọn có thể được sử dụng bất kỳ số lần nào.

--kiểm toán KIỂM TOÁN
Thêm KIỂM TOÁN vào mục nhập "DT_AUDIT" của phần động. KIỂM TOÁN không được kiểm tra
để tồn tại, cũng như sẽ không sử dụng DT_SONAME được chỉ định trong thư viện. Nếu được chỉ định
nhiều lần "DT_AUDIT" sẽ chứa danh sách giao diện kiểm tra được phân tách bằng dấu hai chấm để
sử dụng. Nếu trình liên kết tìm thấy một đối tượng có mục nhập kiểm tra trong khi tìm kiếm được chia sẻ
thư viện, nó sẽ thêm một mục "DT_DEPAUDIT" tương ứng trong tệp đầu ra. Cái này
tùy chọn chỉ có ý nghĩa trên các nền tảng ELF hỗ trợ giao diện rtld-Audit.

-A kiến trúc
--architecture =kiến trúc
Trong bản phát hành hiện tại của ld, tùy chọn này chỉ hữu ích cho dòng Intel 960 của
kiến trúc. Trong đó ld cấu hình, kiến trúc đối số xác định
kiến trúc cụ thể trong họ 960, cho phép một số biện pháp bảo vệ và sửa đổi
đường dẫn tìm kiếm kho lưu trữ-thư viện.

Các bản phát hành trong tương lai của ld có thể hỗ trợ chức năng tương tự cho kiến ​​trúc khác
các gia đình.

-b định dạng đầu vào
--format =định dạng đầu vào
ld có thể được cấu hình để hỗ trợ nhiều loại tệp đối tượng. Nếu là của bạn ld is
được định cấu hình theo cách này, bạn có thể sử dụng -b tùy chọn để chỉ định định dạng nhị phân cho đầu vào
các tệp đối tượng tuân theo tùy chọn này trên dòng lệnh. Ngay cả khi ld được cấu hình
để hỗ trợ các định dạng đối tượng thay thế, bạn thường không cần chỉ định điều này, như ld
nên được định cấu hình để mong đợi như một định dạng đầu vào mặc định, định dạng thông thường nhất trên mỗi
máy móc. định dạng đầu vào là một chuỗi văn bản, tên của một định dạng cụ thể được hỗ trợ bởi
các thư viện BFD. (Bạn có thể liệt kê các định dạng nhị phân có sẵn với phản đối -i.)

Bạn có thể muốn sử dụng tùy chọn này nếu bạn đang liên kết các tệp với một tệp nhị phân bất thường
định dạng. Bạn cũng có thể dùng -b để chuyển đổi định dạng một cách rõ ràng (khi liên kết các tệp đối tượng
của các định dạng khác nhau), bằng cách bao gồm -b định dạng đầu vào trước mỗi nhóm tệp đối tượng
trong một định dạng cụ thể.

Định dạng mặc định được lấy từ biến môi trường "GNUTARGET".

Bạn cũng có thể xác định định dạng đầu vào từ một tập lệnh, sử dụng lệnh "TARGET";

-c MRI-commandfile
--mri-script =MRI-commandfile
Để tương thích với các trình liên kết được tạo ra bởi MRI, ld chấp nhận các tệp kịch bản được viết bằng một
ngôn ngữ lệnh thay thế, bị hạn chế, được mô tả trong Tệp tập lệnh tương thích MRI
phần của tài liệu GNU ld. Giới thiệu các tệp kịch bản MRI với tùy chọn -c; sử dụng
các -T tùy chọn để chạy các tập lệnh trình liên kết được viết trong mục đích chung ld kịch bản
ngôn ngữ. Nếu như MRI-cmdfile không tồn tại, ld tìm kiếm nó trong các thư mục được chỉ định
bởi bất kỳ -L tùy chọn.

-d
-dc
-dp Ba tùy chọn này là tương đương nhau; nhiều biểu mẫu được hỗ trợ để tương thích
với các trình liên kết khác. Họ gán không gian cho các ký hiệu chung ngay cả khi một đầu ra có thể thay đổi vị trí
tệp được chỉ định (với -r). Lệnh tập lệnh "FORCE_COMMON_ALLOCATION" có
cùng hiệu quả.

--depaudit KIỂM TOÁN
-P KIỂM TOÁN
Thêm KIỂM TOÁN vào mục nhập "DT_DEPAUDIT" của phần động. KIỂM TOÁN không phải là
đã kiểm tra sự tồn tại, cũng như sẽ không sử dụng DT_SONAME được chỉ định trong thư viện. Nếu như
được chỉ định nhiều lần "DT_DEPAUDIT" sẽ chứa danh sách kiểm tra được phân tách bằng dấu hai chấm
giao diện để sử dụng. Tùy chọn này chỉ có ý nghĩa trên các nền tảng ELF hỗ trợ
giao diện rtld-Audit. Tùy chọn -P được cung cấp để tương thích với Solaris.

-e nhập
--entry =nhập
Sử dụng nhập là biểu tượng rõ ràng để bắt đầu thực thi chương trình của bạn, thay vì
điểm vào mặc định. Nếu không có ký hiệu nào được đặt tên nhập, trình liên kết sẽ cố gắng
phân tích nhập dưới dạng một số và sử dụng nó làm địa chỉ mục nhập (số sẽ là
được diễn giải trong cơ số 10; bạn có thể sử dụng một đầu 0x cho cơ sở 16 hoặc một 0 cho cơ sở
8).

--exclude-libs lib,lib, ...
Chỉ định danh sách các thư viện lưu trữ mà từ đó các ký hiệu không được tự động
đã xuất khẩu. Tên thư viện có thể được phân cách bằng dấu phẩy hoặc dấu hai chấm. Xác định
"--exclude-libs ALL" loại trừ các ký hiệu trong tất cả các thư viện lưu trữ khỏi xuất tự động.
Tùy chọn này chỉ có sẵn cho cổng nhắm mục tiêu i386 PE của trình liên kết và cho ELF
các cổng được nhắm mục tiêu. Đối với i386 PE, các ký hiệu được liệt kê rõ ràng trong tệp .def vẫn là
đã xuất, bất kể tùy chọn này. Đối với các cổng nhắm mục tiêu ELF, các ký hiệu bị ảnh hưởng bởi điều này
tùy chọn sẽ được coi là ẩn.

--exclude-modules-for-implib mô-đun,mô-đun, ...
Chỉ định danh sách các tệp đối tượng hoặc thành viên lưu trữ, từ đó các ký hiệu không được
được xuất tự động, nhưng sẽ được sao chép bán buôn vào thư viện nhập
được tạo trong liên kết. Tên mô-đun có thể được phân cách bằng dấu phẩy hoặc
dấu hai chấm và phải khớp chính xác với tên tệp được sử dụng bởi ld để mở các tập tin; để lưu trữ
thành viên, đây chỉ đơn giản là tên thành viên, nhưng đối với tệp đối tượng, tên được liệt kê phải
bao gồm và đối sánh chính xác bất kỳ đường dẫn nào được sử dụng để chỉ định tệp đầu vào trên trình liên kết
dòng lệnh. Tùy chọn này chỉ có sẵn cho cổng nhắm mục tiêu i386 PE của
trình liên kết. Các ký hiệu được liệt kê rõ ràng trong tệp .def vẫn được xuất, bất kể
tùy chọn này.

-E
--xuất khẩu-động
--không-xuất-động
Khi tạo tệp thực thi được liên kết động, sử dụng -E tùy chọn hoặc
--xuất khẩu-động tùy chọn khiến trình liên kết thêm tất cả các ký hiệu vào biểu tượng động
bàn. Bảng ký hiệu động là tập hợp các ký hiệu có thể nhìn thấy từ động
các đối tượng tại thời điểm chạy.

Nếu bạn không sử dụng một trong hai tùy chọn này (hoặc sử dụng --không-xuất-động tùy chọn để
khôi phục hành vi mặc định), bảng ký hiệu động thường sẽ chỉ chứa
những biểu tượng được tham chiếu bởi một số đối tượng động được đề cập trong liên kết.

Nếu bạn sử dụng "dlopen" để tải một đối tượng động cần tham chiếu trở lại các ký hiệu
được định nghĩa bởi chương trình, thay vì một số đối tượng động khác, khi đó bạn có thể sẽ
cần sử dụng tùy chọn này khi liên kết chính chương trình.

Bạn cũng có thể sử dụng danh sách động để kiểm soát những biểu tượng nào sẽ được thêm vào
bảng ký hiệu động nếu định dạng đầu ra hỗ trợ nó. Xem mô tả của
--dynamic-list.

Lưu ý rằng tùy chọn này dành riêng cho các cổng được nhắm mục tiêu ELF. Mục tiêu PE hỗ trợ một
chức năng xuất tất cả các ký hiệu từ DLL hoặc EXE; xem mô tả của
--xuất-tất-cả-biểu-tượng phía dưới.

-EB Liên kết các đối tượng big-endian. Điều này ảnh hưởng đến định dạng đầu ra mặc định.

-EL Liên kết các đối tượng little-endian. Điều này ảnh hưởng đến định dạng đầu ra mặc định.

-f tên
--aux mật =tên
Khi tạo đối tượng được chia sẻ ELF, hãy đặt trường DT_AUXILIARY nội bộ thành
tên cụ thể. Điều này cho trình liên kết động biết rằng bảng ký hiệu được chia sẻ
đối tượng nên được sử dụng như một bộ lọc phụ trợ trên bảng ký hiệu của đối tượng được chia sẻ
tên.

Nếu sau đó bạn liên kết một chương trình với đối tượng bộ lọc này, thì khi bạn chạy
chương trình, trình liên kết động sẽ thấy trường DT_AUXILIARY. Nếu trình liên kết động
giải quyết bất kỳ ký hiệu nào từ đối tượng bộ lọc, trước tiên nó sẽ kiểm tra xem có
định nghĩa trong đối tượng được chia sẻ tên. Nếu có, nó sẽ được sử dụng thay vì
định nghĩa trong đối tượng bộ lọc. Đối tượng được chia sẻ tên không cần tồn tại. Vì vậy,
đối tượng được chia sẻ tên có thể được sử dụng để cung cấp một triển khai thay thế của một số
các chức năng, có thể để gỡ lỗi hoặc cho hiệu suất cụ thể của máy.

Tùy chọn này có thể được chỉ định nhiều lần. Các mục DT_AUXILIARY sẽ được tạo
theo thứ tự mà chúng xuất hiện trên dòng lệnh.

-F tên
- bộ lọc =tên
Khi tạo đối tượng chia sẻ ELF, hãy đặt trường DT_FILTER nội bộ thành
Tên. Điều này cho trình liên kết động biết rằng bảng ký hiệu của đối tượng được chia sẻ
đang được tạo nên được sử dụng như một bộ lọc trên bảng biểu tượng của đối tượng được chia sẻ
tên.

Nếu sau đó bạn liên kết một chương trình với đối tượng bộ lọc này, thì khi bạn chạy
chương trình, trình liên kết động sẽ thấy trường DT_FILTER. Trình liên kết động sẽ
giải quyết các ký hiệu theo bảng ký hiệu của đối tượng bộ lọc như bình thường, nhưng nó
thực sự sẽ liên kết đến các định nghĩa được tìm thấy trong đối tượng được chia sẻ tên. Do đó,
đối tượng bộ lọc có thể được sử dụng để chọn một tập hợp con các ký hiệu được cung cấp bởi đối tượng
tên.

Một số trình liên kết cũ hơn đã sử dụng -F tùy chọn xuyên suốt chuỗi công cụ biên dịch cho
xác định định dạng tệp đối tượng cho cả tệp đối tượng đầu vào và đầu ra. Trình liên kết GNU
sử dụng các cơ chế khác cho mục đích này: -b, --định dạng, --oformat các tùy chọn,
Lệnh "TARGET" trong tập lệnh trình liên kết và biến môi trường "GNUTARGET". GNU
trình liên kết sẽ bỏ qua -F tùy chọn khi không tạo đối tượng chia sẻ ELF.

-fini =tên
Khi tạo một đối tượng thực thi hoặc chia sẻ ELF, hãy gọi NAME khi đối tượng thực thi hoặc
đối tượng chia sẻ được dỡ bỏ, bằng cách đặt DT_FINI thành địa chỉ của hàm. Qua
mặc định, trình liên kết sử dụng "_fini" làm hàm để gọi.

-g Mặc kệ. Được cung cấp để tương thích với các công cụ khác.

-G giá trị
--gpsize =giá trị
Đặt kích thước tối đa của các đối tượng được tối ưu hóa bằng cách sử dụng thanh ghi GP thành kích thước. Điều này
chỉ có ý nghĩa đối với các định dạng tệp đối tượng như MIPS ELF hỗ trợ đặt
và các vật thể nhỏ thành các phần khác nhau. Điều này bị bỏ qua đối với tệp đối tượng khác
định dạng.

-h tên
-soname =tên
Khi tạo đối tượng chia sẻ ELF, hãy đặt trường DT_SONAME nội bộ thành
Tên. Khi một tệp thực thi được liên kết với một đối tượng được chia sẻ có trường DT_SONAME,
sau đó khi tệp thực thi được chạy, trình liên kết động sẽ cố gắng tải tệp được chia sẻ
đối tượng được chỉ định bởi trường DT_SONAME thay vì sử dụng tên tệp được cấp cho
trình liên kết.

-i Thực hiện liên kết tăng dần (giống như tùy chọn -r).

-init =tên
Khi tạo một đối tượng thực thi hoặc chia sẻ ELF, hãy gọi NAME khi đối tượng thực thi hoặc
đối tượng chia sẻ được tải, bằng cách đặt DT_INIT thành địa chỉ của hàm. Qua
mặc định, trình liên kết sử dụng "_init" làm hàm để gọi.

-l namepec
--library =namepec
Thêm tệp lưu trữ hoặc tệp đối tượng được chỉ định bởi namepec vào danh sách các tệp cần liên kết.
Tùy chọn này có thể được sử dụng bất kỳ số lần nào. Nếu như namepec có dạng : tên tệp, ld
sẽ tìm kiếm đường dẫn thư viện cho một tệp có tên tên tập tin, nếu không nó sẽ tìm kiếm
đường dẫn thư viện cho một tệp được gọi là libnamespec.a.

Trên các hệ thống hỗ trợ thư viện được chia sẻ, ld cũng có thể tìm kiếm các tệp khác ngoài
libnamespec.a. Cụ thể, trên hệ thống ELF và SunOS, ld sẽ tìm kiếm một thư mục cho
một thư viện được gọi là libnamespec.so trước khi tìm kiếm một người được gọi là libnamespec.a. (Qua
quy ước, phần mở rộng ".so" chỉ ra một thư viện được chia sẻ.) Lưu ý rằng hành vi này
không áp dụng cho : tên tệp, luôn chỉ định một tệp được gọi là tên tập tin.

Trình liên kết sẽ chỉ tìm kiếm một kho lưu trữ một lần, tại vị trí mà nó được chỉ định
dòng lệnh. Nếu kho lưu trữ xác định một ký hiệu chưa được xác định trong một số đối tượng
xuất hiện trước kho lưu trữ trên dòng lệnh, trình liên kết sẽ bao gồm
(các) tệp thích hợp từ kho lưu trữ. Tuy nhiên, một biểu tượng không xác định trong một đối tượng
xuất hiện sau trên dòng lệnh sẽ không khiến trình liên kết tìm kiếm kho lưu trữ
một lần nữa.

Xem -( tùy chọn cho một cách để buộc trình liên kết tìm kiếm các kho lưu trữ nhiều lần.

Bạn có thể liệt kê cùng một kho lưu trữ nhiều lần trên dòng lệnh.

Loại tìm kiếm kho lưu trữ này là tiêu chuẩn cho các trình liên kết Unix. Tuy nhiên, nếu bạn
sử dụng ld trên AIX, hãy lưu ý rằng nó khác với hoạt động của trình liên kết AIX.

-L searchdir
--library-path =searchdir
Thêm đường dẫn searchdir đến danh sách các đường dẫn ld sẽ tìm kiếm các thư viện lưu trữ và
ld các tập lệnh điều khiển. Bạn có thể sử dụng tùy chọn này bất kỳ số lần nào. Các thư mục là
được tìm kiếm theo thứ tự mà chúng được chỉ định trên dòng lệnh. Thư mục
được chỉ định trên dòng lệnh được tìm kiếm trước các thư mục mặc định. Tất cả các -L
các tùy chọn áp dụng cho tất cả -l tùy chọn, bất kể thứ tự xuất hiện của các tùy chọn.
-L các tùy chọn không ảnh hưởng đến cách ld tìm kiếm tập lệnh trình liên kết trừ khi -T Tùy chọn là
được chỉ định.

If searchdir bắt đầu bằng "=", sau đó "=" sẽ được thay thế bằng sysroot tiếp đầu ngữ,
được kiểm soát bởi --sysroot hoặc được chỉ định khi trình liên kết được định cấu hình.

Tập hợp các đường dẫn mặc định được tìm kiếm (mà không được chỉ định với -L) phụ thuộc vào cái nào
chế độ giả lập ld đang sử dụng và trong một số trường hợp cũng như cách nó được định cấu hình.

Các đường dẫn cũng có thể được chỉ định trong một tập lệnh liên kết bằng lệnh "SEARCH_DIR".
Các thư mục được chỉ định theo cách này được tìm kiếm tại điểm trong đó tập lệnh trình liên kết
xuất hiện trong dòng lệnh.

-m thi đua
Mô phỏng thi đua trình liên kết. Bạn có thể liệt kê các mô phỏng có sẵn với
--verbose or -V tùy chọn.

Nếu -m tùy chọn không được sử dụng, mô phỏng được lấy từ "LDEMULATION"
biến môi trường, nếu điều đó được xác định.

Nếu không, mô phỏng mặc định phụ thuộc vào cách trình liên kết được định cấu hình.

-M
- bản đồ in
In bản đồ liên kết ra đầu ra tiêu chuẩn. Một bản đồ liên kết cung cấp thông tin về
liên kết, bao gồm những điều sau:

· Nơi các tệp đối tượng được ánh xạ vào bộ nhớ.

· Các ký hiệu chung được phân bổ như thế nào.

· Tất cả các thành viên lưu trữ có trong liên kết, có đề cập đến biểu tượng
khiến thành viên lưu trữ được đưa vào.

· Các giá trị được gán cho các ký hiệu.

Lưu ý - các ký hiệu có giá trị được tính bằng một biểu thức liên quan đến
tham chiếu đến giá trị trước đó của cùng một biểu tượng có thể không có kết quả chính xác
hiển thị trong bản đồ liên kết. Điều này là do trình liên kết loại bỏ
kết quả và chỉ giữ lại giá trị cuối cùng của một biểu thức. Theo như vậy
trường hợp trình liên kết sẽ hiển thị giá trị cuối cùng được bao bởi dấu ngoặc vuông.
Vì vậy, ví dụ, một tập lệnh trình liên kết có chứa:

foo = 1
foo = foo * 4
foo = foo + 8

sẽ tạo ra kết quả sau trong bản đồ liên kết nếu -M tùy chọn được sử dụng:

0x00000001 foo = 0x1
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)

Xem Biểu thức để biết thêm thông tin về các biểu thức trong tập lệnh trình liên kết.

-n
--nmagic
Tắt căn chỉnh trang của các phần và tắt liên kết với các thư viện được chia sẻ. Nếu như
định dạng đầu ra hỗ trợ các số ma thuật kiểu Unix, đánh dấu đầu ra là "NMAGIC".

-N
--omagic
Đặt các phần văn bản và dữ liệu có thể đọc và ghi được. Ngoài ra, không căn chỉnh trang
phân đoạn dữ liệu và tắt liên kết với các thư viện được chia sẻ. Nếu định dạng đầu ra
hỗ trợ số ma thuật kiểu Unix, đánh dấu đầu ra là "OMAGIC". Lưu ý: Mặc dù a
Phần văn bản có thể ghi được cho phép đối với các mục tiêu PE-COFF, nó không tuân theo
đặc điểm kỹ thuật định dạng do Microsoft xuất bản.

--no-omagic
Tùy chọn này phủ nhận hầu hết các tác động của -N Lựa chọn. Nó đặt phần văn bản thành
ở chế độ chỉ đọc và buộc phân đoạn dữ liệu phải được căn chỉnh theo trang. Lưu ý - tùy chọn này không
không cho phép liên kết chống lại các thư viện được chia sẻ. Sử dụng - Động lực học cho việc này.

-o đầu ra
--output =đầu ra
Sử dụng đầu ra như tên của chương trình được sản xuất bởi ld; nếu tùy chọn này không
được chỉ định, tên a.out được sử dụng theo mặc định. Lệnh script "OUTPUT" cũng có thể
chỉ định tên tệp đầu ra.

-O cấp
If cấp là một giá trị số lớn hơn XNUMX ld tối ưu hóa đầu ra. Điều này có thể
mất nhiều thời gian hơn và do đó có lẽ chỉ nên được kích hoạt cho phần cuối cùng
nhị phân. Hiện tại, tùy chọn này chỉ ảnh hưởng đến việc tạo thư viện chia sẻ ELF. Tương lai
bản phát hành của trình liên kết có thể sử dụng nhiều hơn tùy chọn này. Ngoài ra hiện tại không có
sự khác biệt trong hành vi của trình liên kết đối với các giá trị khác XNUMX của tùy chọn này.
Một lần nữa điều này có thể thay đổi với các bản phát hành trong tương lai.

--push-state
Mô hình --push-state cho phép duy trì trạng thái hiện tại của các cờ chi phối
xử lý tệp đầu vào để tất cả chúng có thể được khôi phục bằng một tệp tương ứng
- tiểu bang tùy chọn.

Tùy chọn được đề cập là: - Động lực học, -Bình tĩnh, -dn, -cô, -call_shared,
-non_shared, -mặt đứng, -N, -n, --whole-archive, - không có toàn bộ lưu trữ, -r, -Ur,
--copy-dt-need-entry, --no-copy-dt-need-entry, - khi cần thiết, - không cần thiết,
-a.

Một mục tiêu cho tùy chọn này là các thông số kỹ thuật cho pkg-config. Khi được sử dụng với
--libs tất cả các thư viện cần thiết có thể được liệt kê và sau đó có thể được liên kết với
mọi lúc. Tốt hơn là trả lại một cái gì đó như sau:

-Wl, - push-state, - khi cần thiết -libone -libtwo -Wl, - pop-state

Hoàn tác hiệu ứng của --push-state, khôi phục các giá trị trước đó của các cờ quản lý
xử lý tệp đầu vào.

-q
--emit-relocs
Để lại các phần và nội dung tái định cư trong các tệp thực thi được liên kết đầy đủ. Liên kết bài viết
các công cụ phân tích và tối ưu hóa có thể cần thông tin này để thực hiện chính xác
sửa đổi của các tệp thực thi. Điều này dẫn đến các tệp thực thi lớn hơn.

Tùy chọn này hiện chỉ được hỗ trợ trên nền tảng ELF.

- lực-động
Buộc tệp đầu ra có các phần động. Tùy chọn này dành riêng cho VxWorks
mục tiêu.

-r
- có thể định vị lại
Tạo đầu ra có thể định vị lại --- tức là, tạo một tệp đầu ra có thể phục vụ như
nhập vào ld. Điều này thường được gọi là một phần liên kết. Như một tác dụng phụ, trong môi trường
hỗ trợ số ma thuật Unix tiêu chuẩn, tùy chọn này cũng đặt tệp đầu ra của
số ma thuật thành "OMAGIC". Nếu tùy chọn này không được chỉ định, một tệp tuyệt đối là
được sản xuất. Khi liên kết các chương trình C ++, tùy chọn này sẽ không phải giải quyết các tham chiếu đến
người xây dựng; để làm điều đó, hãy sử dụng -Ur.

Khi tệp đầu vào không có cùng định dạng với tệp đầu ra, liên kết một phần
chỉ được hỗ trợ nếu tệp đầu vào đó không chứa bất kỳ vị trí nào. Khác nhau
định dạng đầu ra có thể có nhiều hạn chế hơn nữa; ví dụ một số định dạng dựa trên "a.out"
hoàn toàn không hỗ trợ liên kết một phần với các tệp đầu vào ở các định dạng khác.

Tùy chọn này làm điều tương tự như -i.

-R tên tập tin
--chỉ-ký hiệu =tên tập tin
Đọc tên biểu tượng và địa chỉ của chúng từ tên tập tin, nhưng không di dời nó hoặc bao gồm
nó trong đầu ra. Điều này cho phép tệp đầu ra của bạn tham chiếu một cách tượng trưng đến tuyệt đối
vị trí của bộ nhớ được xác định trong các chương trình khác. Bạn có thể sử dụng tùy chọn này nhiều hơn
Một lần.

Để tương thích với các trình liên kết ELF khác, nếu -R theo sau là một thư mục
tên, thay vì tên tệp, nó được coi là -rpath tùy chọn.

-s
--strip-all
Bỏ qua tất cả thông tin ký hiệu khỏi tệp đầu ra.

-S
--strip-debug
Bỏ qua thông tin ký hiệu trình gỡ lỗi (nhưng không phải tất cả các ký hiệu) khỏi tệp đầu ra.

-t
--dấu vết
In tên của các tệp đầu vào dưới dạng ld xử lý chúng.

-T tập kịch bản
--script =tập kịch bản
Sử dụng tập kịch bản dưới dạng tập lệnh trình liên kết. Tập lệnh này thay thế ldtập lệnh trình liên kết mặc định của
(thay vì thêm vào nó), vì vậy tệp lệnh phải chỉ định mọi thứ cần thiết để
mô tả tệp đầu ra. Nếu như tập kịch bản không tồn tại trong thư mục hiện tại,
"ld" tìm kiếm nó trong các thư mục được chỉ định bởi bất kỳ phần trước nào -L tùy chọn. Nhiều
-T tùy chọn tích lũy.

-dT tập kịch bản
--default-script =tập kịch bản
Sử dụng tập kịch bản làm tập lệnh trình liên kết mặc định.

Tùy chọn này tương tự như --kịch bản ngoại trừ việc xử lý tập lệnh là
trì hoãn cho đến khi phần còn lại của dòng lệnh đã được xử lý. Điều này cho phép
các tùy chọn được đặt sau --default-script tùy chọn trên dòng lệnh để ảnh hưởng đến
hành vi của tập lệnh trình liên kết, có thể quan trọng khi dòng lệnh trình liên kết
không thể được kiểm soát trực tiếp bởi người dùng. (ví dụ: vì dòng lệnh đang được
được xây dựng bởi một công cụ khác, chẳng hạn như gcc).

-u biểu tượng
--undefined =biểu tượng
Buộc biểu tượng được nhập vào tệp đầu ra dưới dạng ký hiệu không xác định. Làm điều này có thể,
ví dụ, kích hoạt liên kết các mô-đun bổ sung từ các thư viện tiêu chuẩn. -u có lẽ
được lặp lại với các đối số tùy chọn khác nhau để nhập các ký hiệu không xác định bổ sung. Cái này
tùy chọn tương đương với lệnh tập lệnh trình liên kết "EXTERN".

Nếu tùy chọn này đang được sử dụng để buộc các mô-đun bổ sung được kéo vào liên kết,
và nếu đó là lỗi khi ký hiệu vẫn chưa được xác định, thì tùy chọn
- yêu cầu xác định nên được sử dụng thay thế.

--require-xác định =biểu tượng
Yêu cầu điều đó biểu tượng được định nghĩa trong tệp đầu ra. Tùy chọn này giống như tùy chọn
--không xác định ngoại trừ điều đó nếu biểu tượng không được xác định trong tệp đầu ra thì trình liên kết
sẽ báo lỗi và thoát. Hiệu ứng tương tự có thể đạt được trong tập lệnh trình liên kết bằng cách
bằng cách sử dụng "EXTERN", "ASSERT" và "DEFINED" cùng nhau. Tùy chọn này có thể được sử dụng nhiều
lần để yêu cầu các ký hiệu bổ sung.

-Ur Đối với bất kỳ thứ gì khác ngoài chương trình C ++, tùy chọn này tương đương với -r: nó tạo ra
đầu ra có thể thay đổi vị trí --- tức là, một tệp đầu ra có thể đóng vai trò là đầu vào cho ld. Khi nào
liên kết các chương trình C ++, -Ur làm giải quyết các tham chiếu đến các hàm tạo, không giống như -r. Nó có
không làm việc để sử dụng -Ur trên các tệp được liên kết với chính họ -Ur; một khi
bảng hàm tạo đã được xây dựng, nó không thể được thêm vào. Sử dụng -Ur chỉ cho cuối cùng
liên kết một phần, và -r cho những người khác.

--orphan-processing =PHƯƠNG THỨC
Kiểm soát cách xử lý các phần mồ côi. Phần mồ côi không phải là một phần cụ thể
được đề cập trong một tập lệnh trình liên kết.

PHƯƠNG THỨC có thể có bất kỳ giá trị nào sau đây:

"địa điểm"
Các phần mồ côi được đặt vào một phần đầu ra phù hợp theo chiến lược
diễn tả cái Trẻ mồ côi Mục. Các tùy chọn --duy nhất cũng ảnh hưởng đến cách các phần
đã đặt.

"loại bỏ"
Tất cả các phần mồ côi đều bị loại bỏ, bằng cách đặt chúng vào / TIẾT KIỆM / phần.

"cảnh báo"
Trình liên kết sẽ đặt phần mồ côi như cho "địa điểm" và cũng đưa ra cảnh báo.

"lỗi"
Trình liên kết sẽ thoát với lỗi nếu tìm thấy bất kỳ phần mồ côi nào.

Giá trị mặc định nếu --orphan-xử lý không được đưa ra là "địa điểm".

--unique [=PHẦN]
Tạo phần đầu ra riêng biệt cho mọi phần đầu vào phù hợp PHẦN, hoặc nếu
ký tự đại diện tùy chọn PHẦN đối số bị thiếu đối với mọi phần đầu vào mồ côi. Một
phần mồ côi là phần không được đề cập cụ thể trong tập lệnh trình liên kết. Bạn có thể sử dụng cái này
tùy chọn nhiều lần trên dòng lệnh; Nó ngăn cản sự hợp nhất thông thường của đầu vào
các phần có cùng tên, ghi đè các bài tập phần đầu ra trong một tập lệnh trình liên kết.

-v
--phiên bản
-V Hiển thị số phiên bản cho ld. Các -V tùy chọn cũng liệt kê các mô phỏng được hỗ trợ.

-x
--Loại bỏ tất cả
Xóa tất cả các ký hiệu cục bộ.

-X
- người dân địa phương
Xóa tất cả các ký hiệu cục bộ tạm thời. (Các ký hiệu này bắt đầu bằng cục bộ dành riêng cho hệ thống
tiền tố nhãn, thường là .L cho hệ thống ELF hoặc L cho các hệ thống a.out truyền thống.)

-y biểu tượng
--trace-ký hiệu =biểu tượng
In tên của mỗi tệp được liên kết trong đó biểu tượng xuất hiện. Tùy chọn này có thể được đưa ra
bất kỳ số lần nào. Trên nhiều hệ thống, cần phải thêm dấu gạch dưới.

Tùy chọn này hữu ích khi bạn có một ký hiệu không xác định trong liên kết của mình nhưng không biết
tài liệu tham khảo đến từ đâu.

-Y con đường
Thêm con đường đến đường dẫn tìm kiếm thư viện mặc định. Tùy chọn này tồn tại cho Solaris
khả năng tương thích.

-z từ khóa
Các từ khóa được công nhận là:

combreloc
Kết hợp nhiều phần tái định vị và sắp xếp chúng để thực hiện tra cứu ký hiệu động
bộ nhớ đệm có thể.

phản đối
Không cho phép các ký hiệu không xác định trong tệp đối tượng. Các ký hiệu không xác định trong được chia sẻ
thư viện vẫn được phép.

người thi hành
Đánh dấu đối tượng là yêu cầu ngăn xếp thực thi.

toàn cầu
Tùy chọn này chỉ có ý nghĩa khi xây dựng một đối tượng dùng chung. Nó làm cho
các ký hiệu được xác định bởi đối tượng được chia sẻ này có sẵn để phân giải ký hiệu của
các thư viện được tải sau đó.

đầu tiên
Tùy chọn này chỉ có ý nghĩa khi xây dựng một đối tượng dùng chung. Nó đánh dấu đối tượng
để khởi tạo thời gian chạy của nó sẽ xảy ra trước khi khởi tạo thời gian chạy của
bất kỳ đối tượng nào khác được đưa vào quy trình cùng một lúc. Tương tự như vậy
quá trình hoàn thiện thời gian chạy của đối tượng sẽ xảy ra sau quá trình hoàn thiện thời gian chạy của
bất kỳ đối tượng nào khác.

xen vào
Đánh dấu đối tượng mà bảng ký hiệu của nó xen vào trước tất cả các ký hiệu ngoại trừ
thực thi chính.

lười biếng
Khi tạo một thư viện thực thi hoặc được chia sẻ, hãy đánh dấu nó để thông báo cho động
trình liên kết để trì hoãn độ phân giải cuộc gọi hàm đến thời điểm khi hàm được gọi
(liên kết lười biếng), thay vì tại thời điểm tải. Ràng buộc lười biếng là mặc định.

loadfltr
Đánh dấu đối tượng mà bộ lọc của nó được xử lý ngay lập tức trong thời gian chạy.

muldefs
Cho phép nhiều định nghĩa.

nocombreloc
Tắt kết hợp nhiều phần tái định vị.

nocopyreloc
Vô hiệu hóa các biến .dynbss do trình liên kết tạo được sử dụng thay cho các biến được xác định trong
thư viện dùng chung. Có thể dẫn đến việc di chuyển văn bản động.

nodefaultlib
Đánh dấu đối tượng mà tìm kiếm phụ thuộc của đối tượng này sẽ bỏ qua bất kỳ
đường dẫn tìm kiếm thư viện mặc định.

gật đầu
Đánh dấu đối tượng không được tải xuống trong thời gian chạy.

nốt sần
Đánh dấu đối tượng không khả dụng cho "dlopen".

nốt sần
Đánh dấu đối tượng không thể đổ bằng "dldump".

noexecstack
Đánh dấu đối tượng là không yêu cầu ngăn xếp thực thi.

văn bản
Coi DT_TEXTREL trong đối tượng được chia sẻ là lỗi.

không có văn bản
Đừng coi DT_TEXTREL trong đối tượng được chia sẻ là lỗi.

văn bản
Đừng coi DT_TEXTREL trong đối tượng được chia sẻ là lỗi.

norelro
Không tạo tiêu đề phân đoạn ELF "PT_GNU_RELRO" trong đối tượng.

tại Khi tạo một thư viện thực thi hoặc được chia sẻ, hãy đánh dấu nó để thông báo cho động
trình liên kết để giải quyết tất cả các ký hiệu khi chương trình được khởi động hoặc khi chia sẻ
thư viện được liên kết với việc sử dụng dlopen, thay vì trì hoãn độ phân giải cuộc gọi hàm
đến thời điểm khi hàm được gọi lần đầu tiên.

nguồn gốc
Đánh dấu đối tượng có thể chứa $ ORIGIN.

relro
Tạo tiêu đề phân đoạn ELF "PT_GNU_RELRO" trong đối tượng.

max-page-size =giá trị
Đặt kích thước trang tối đa mô phỏng thành giá trị.

common-page-size =giá trị
Đặt kích thước trang chung mô phỏng thành giá trị.

stack-size =giá trị
Chỉ định kích thước ngăn xếp cho phân đoạn ELF "PT_GNU_STACK". Chỉ định số không sẽ
ghi đè mọi tạo phân đoạn "PT_GNU_STACK" có kích thước mặc định khác XNUMX.

bndplt
Luôn tạo tiền tố BND trong các mục PLT. Được hỗ trợ cho Linux / x86_64.

dữ liệu được bảo vệ không bên ngoài
Không coi biểu tượng dữ liệu được bảo vệ là bên ngoài khi xây dựng thư viện được chia sẻ. Cái này
tùy chọn ghi đè mặc định chương trình phụ trợ của trình liên kết. Nó có thể được sử dụng để giải quyết sai
các vị trí so với các ký hiệu dữ liệu được bảo vệ do trình biên dịch tạo ra. Cập nhật trên
các ký hiệu dữ liệu được bảo vệ bởi một mô-đun khác sẽ không hiển thị với kết quả được chia sẻ
thư viện. Được hỗ trợ cho i386 và x86-64.

call-nop = prefix-addr
call-nop = prefix-nop
call-nop = hậu tố-nop
call-nop = prefix-byte
call-nop = hậu tố-byte
Chỉ định vùng đệm "NOP" 1 byte khi chuyển đổi cuộc gọi gián tiếp thành cuộc gọi cục bộ
chức năng được xác định, foo, thông qua khe cắm GOT của nó. call-nop = prefix-addr tạo "0x67
gọi foo ”. call-nop = prefix-nop tạo "foo cuộc gọi 0x90". call-nop = hậu tố-nop
tạo "call foo 0x90". call-nop = prefix-byte tạo ra "byte cuộc gọi foo ".
call-nop = hậu tố-byte tạo ra "call foo byte ". Được hỗ trợ cho i386 và x86_64.

Các từ khóa khác được bỏ qua cho khả năng tương thích của Solaris.

-( tài liệu lưu trữ -)
- nhóm khởi động tài liệu lưu trữ --end-nhóm
Mô hình tài liệu lưu trữ nên là một danh sách các tệp lưu trữ. Chúng có thể là tệp rõ ràng
tên, hoặc -l tùy chọn.

Các kho lưu trữ được chỉ định được tìm kiếm nhiều lần cho đến khi không có tài liệu tham khảo không xác định mới nào
tạo. Thông thường, một kho lưu trữ chỉ được tìm kiếm một lần theo thứ tự mà nó được chỉ định
trên dòng lệnh. Nếu một biểu tượng trong kho lưu trữ đó là cần thiết để giải quyết một
biểu tượng được tham chiếu bởi một đối tượng trong kho lưu trữ xuất hiện sau trên dòng lệnh,
trình liên kết sẽ không thể giải quyết tham chiếu đó. Bằng cách nhóm các kho lưu trữ,
tất cả chúng đều được tìm kiếm nhiều lần cho đến khi tất cả các tham chiếu có thể được giải quyết.

Sử dụng tùy chọn này có một chi phí hiệu suất đáng kể. Tốt nhất là chỉ sử dụng nó khi
không thể tránh khỏi các tham chiếu vòng tròn giữa hai hoặc nhiều kho lưu trữ.

--accept-chưa biết-đầu vào-vòm
- không chấp nhận-không xác định-đầu vào-vòm
Yêu cầu trình liên kết chấp nhận các tệp đầu vào có kiến ​​trúc không thể nhận dạng được. Các
giả định là người dùng biết họ đang làm gì và cố tình muốn liên kết
trong các tệp đầu vào không xác định này. Đây là hành vi mặc định của trình liên kết, trước đây
phát hành 2.14. Hành vi mặc định từ bản phát hành 2.14 trở đi là từ chối đầu vào đó
các tệp, và vì vậy --accept-chưa biết-đầu vào-vòm tùy chọn đã được thêm vào để khôi phục lại cái cũ
hành vi.

- khi cần thiết
- không cần thiết
Tùy chọn này ảnh hưởng đến thẻ ELF DT_NEEDED cho các thư viện động được đề cập trong lệnh
dòng sau - khi cần thiết Lựa chọn. Thông thường, trình liên kết sẽ thêm thẻ DT_NEEDED cho
mỗi thư viện động được đề cập trên dòng lệnh, bất kể thư viện
có thực sự cần thiết hay không. - khi cần thiết khiến thẻ DT_NEEDED chỉ được phát cho
một thư viện at việc này điểm in các Link thỏa mãn một ký hiệu không xác định không yếu
tham chiếu từ tệp đối tượng thông thường hoặc nếu không tìm thấy thư viện trong DT_NEEDED
danh sách các thư viện cần thiết khác, một tham chiếu ký hiệu không xác định không yếu từ một
thư viện động cần thiết. Tệp đối tượng hoặc thư viện xuất hiện trên dòng lệnh sau khi
thư viện được đề cập không ảnh hưởng đến việc liệu thư viện có được xem là cần thiết hay không. Đây là
tương tự như các quy tắc trích xuất tệp đối tượng từ kho lưu trữ. - không cần thiết
khôi phục hành vi mặc định.

- cần thêm
- không cần bổ sung
Hai tùy chọn này không được dùng nữa vì tên của chúng giống với
- khi cần thiết- không cần thiết tùy chọn. Chúng đã được thay thế bằng
--copy-dt-need-entry--no-copy-dt-need-entry.

-massert từ khóa
Tùy chọn này bị bỏ qua để tương thích với SunOS.

- Động lực học
-cô
-call_shared
Liên kết với các thư viện động. Điều này chỉ có ý nghĩa trên các nền tảng được chia sẻ
thư viện được hỗ trợ. Tùy chọn này thường là mặc định trên các nền tảng như vậy. Các
các biến thể khác nhau của tùy chọn này là để tương thích với các hệ thống khác nhau. Bạn có thể
sử dụng tùy chọn này nhiều lần trên dòng lệnh: nó ảnh hưởng đến việc tìm kiếm thư viện
-l các tùy chọn theo sau nó.

-Nhóm
Đặt cờ "DF_1_GROUP" trong mục nhập "DT_FLAGS_1" trong phần động. Cái này
khiến trình liên kết thời gian chạy xử lý các tra cứu trong đối tượng này và các phụ thuộc của nó là
chỉ biểu diễn trong nhóm. --unresolved-Symbol = report-all được ngụ ý. Cái này
tùy chọn chỉ có ý nghĩa trên các nền tảng ELF hỗ trợ các thư viện được chia sẻ.

-Bình tĩnh
-dn
-non_shared
-mặt đứng
Không liên kết với các thư viện được chia sẻ. Điều này chỉ có ý nghĩa trên các nền tảng
thư viện chia sẻ được hỗ trợ. Các biến thể khác nhau của tùy chọn này dành cho
khả năng tương thích với các hệ thống khác nhau. Bạn có thể sử dụng tùy chọn này nhiều lần trên
dòng lệnh: nó ảnh hưởng đến việc tìm kiếm thư viện -l các tùy chọn theo sau nó. Cái này
tùy chọn cũng ngụ ý --unresolved-Symbol = report-all. Tùy chọn này có thể được sử dụng với
-chia sẻ. Làm như vậy có nghĩa là một thư viện được chia sẻ đang được tạo nhưng tất cả
các tham chiếu bên ngoài của thư viện phải được giải quyết bằng cách lấy các mục nhập từ tĩnh
thư viện.

-Ý tưởng
Khi tạo một thư viện được chia sẻ, hãy liên kết các tham chiếu đến các ký hiệu chung với định nghĩa
trong thư viện được chia sẻ, nếu có. Thông thường, có thể một chương trình được liên kết
chống lại thư viện được chia sẻ để ghi đè định nghĩa trong thư viện được chia sẻ. Cái này
tùy chọn cũng có thể được sử dụng với --xuất khẩu-động tùy chọn, khi tạo một vị trí
có thể thực thi độc lập, để ràng buộc các tham chiếu đến các ký hiệu toàn cục với định nghĩa bên trong
tệp thực thi. Tùy chọn này chỉ có ý nghĩa trên các nền tảng ELF hỗ trợ chia sẻ
thư viện và định vị các tệp thực thi độc lập.

-Chức năng ký hiệu
Khi tạo một thư viện được chia sẻ, hãy liên kết các tham chiếu đến các ký hiệu hàm toàn cầu với
định nghĩa trong thư viện chia sẻ, nếu có. Tùy chọn này cũng có thể được sử dụng với
--xuất khẩu-động tùy chọn, khi tạo một vị trí thực thi độc lập, để ràng buộc
tham chiếu đến các ký hiệu chức năng toàn cục tới định nghĩa trong tệp thực thi. Cái này
tùy chọn chỉ có ý nghĩa trên các nền tảng ELF hỗ trợ các thư viện được chia sẻ và vị trí
các tệp thực thi độc lập.

--dynamic-list =danh sách-tệp động
Chỉ định tên của tệp danh sách động cho trình liên kết. Điều này thường được sử dụng khi
tạo thư viện được chia sẻ để chỉ định danh sách các ký hiệu toàn cầu có các tham chiếu
không nên bị ràng buộc với định nghĩa trong thư viện được chia sẻ hoặc tạo
các tệp thực thi được liên kết động để chỉ định danh sách các ký hiệu cần được thêm vào
bảng ký hiệu trong tệp thực thi. Tùy chọn này chỉ có ý nghĩa trên nền tảng ELF
hỗ trợ các thư viện được chia sẻ.

Định dạng của danh sách động giống như nút phiên bản không có phạm vi và nút
Tên. Nhìn thấy PHIÊN BẢN để biết thêm thông tin chi tiết.

--dynamic-list-data
Đưa tất cả các ký hiệu dữ liệu chung vào danh sách động.

--dynamic-list-cpp-new
Cung cấp danh sách động bên trong cho toán tử C ++ mới và xóa. Nó chủ yếu là hữu ích
để xây dựng libstdc ++ được chia sẻ.

--dynamic-list-cpp-typeinfo
Cung cấp danh sách động bên trong để nhận dạng kiểu thời gian chạy C ++.

- phần kiểm tra
- phần không kiểm tra
Yêu cầu người liên kết không phải để kiểm tra các địa chỉ phần sau khi chúng đã được chỉ định để xem liệu
có bất kỳ sự chồng chéo nào. Thông thường trình liên kết sẽ thực hiện kiểm tra này và nếu nó tìm thấy
bất kỳ sự chồng chéo nào nó sẽ tạo ra các thông báo lỗi phù hợp. Trình liên kết không biết về, và
thực hiện phụ cấp cho các phần trong lớp phủ. Hành vi mặc định có thể được khôi phục
bằng cách sử dụng công tắc dòng lệnh - phần kiểm tra. Phần chồng chéo không thường
đã kiểm tra các liên kết có thể di dời. Bạn có thể buộc kiểm tra trong trường hợp đó bằng cách sử dụng
- phần kiểm tra tùy chọn.

--copy-dt-need-entry
--no-copy-dt-need-entry
Tùy chọn này ảnh hưởng đến việc xử lý các thư viện động được tham chiếu bởi thẻ DT_NEEDED
trong Thư viện động ELF được đề cập trên dòng lệnh. Thông thường trình liên kết sẽ không
thêm thẻ DT_NEEDED vào tệp nhị phân đầu ra cho mỗi thư viện được đề cập trong thẻ DT_NEEDED
trong một thư viện động đầu vào. Với --copy-dt-need-entry được chỉ định trên lệnh
dòng tuy nhiên, bất kỳ thư viện động nào theo sau nó sẽ có mục DT_NEEDED của chúng
thêm. Hành vi mặc định có thể được khôi phục với --no-copy-dt-need-entry.

Tùy chọn này cũng có ảnh hưởng đến độ phân giải của các ký hiệu trong thư viện động.
Với --copy-dt-need-entry các thư viện động được đề cập trên dòng lệnh sẽ là
đã tìm kiếm đệ quy, theo sau các thẻ DT_NEEDED của chúng đến các thư viện khác, để
giải quyết các ký hiệu theo yêu cầu của nhị phân đầu ra. Tuy nhiên, với cài đặt mặc định
tìm kiếm các thư viện động theo sau nó sẽ dừng lại với thư viện động
chinh no. Không có liên kết DT_NEEDED nào sẽ được duyệt để phân giải các ký hiệu.

--cref
Đưa ra một bảng tham chiếu chéo. Nếu tệp bản đồ trình liên kết đang được tạo, dấu chéo
bảng tham chiếu được in ra tệp bản đồ. Nếu không, nó được in trên tiêu chuẩn
đầu ra.

Định dạng của bảng có chủ đích đơn giản để có thể dễ dàng xử lý bằng
một tập lệnh nếu cần thiết. Các ký hiệu được in ra, sắp xếp theo tên. Đối với mỗi ký hiệu,
một danh sách các tên tệp được đưa ra. Nếu ký hiệu được xác định, tệp đầu tiên được liệt kê là
vị trí của định nghĩa. Nếu biểu tượng được xác định là một giá trị chung thì bất kỳ tệp nào
nơi điều này xảy ra tiếp theo. Cuối cùng, bất kỳ tệp nào tham chiếu đến biểu tượng là
liệt kê.

- không-định-nghĩa-chung
Tùy chọn này hạn chế việc gán địa chỉ cho các ký hiệu chung. Kịch bản
lệnh "INHIBIT_COMMON_ALLOCATION" cũng có tác dụng tương tự.

Mô hình - không-định-nghĩa-chung tùy chọn cho phép tách ra quyết định gán địa chỉ cho
Các ký hiệu chung từ việc lựa chọn loại tệp đầu ra; nếu không thì không thể định vị lại
kiểu đầu ra buộc gán địa chỉ cho các ký hiệu chung. Sử dụng - không-định-nghĩa-chung
cho phép các ký hiệu chung được tham chiếu từ thư viện chia sẻ được gán
địa chỉ chỉ trong chương trình chính. Điều này giúp loại bỏ không gian trùng lặp không được sử dụng trong
thư viện được chia sẻ và cũng ngăn ngừa bất kỳ sự nhầm lẫn nào có thể xảy ra khi giải quyết sai
trùng lặp khi có nhiều mô-đun động với các đường dẫn tìm kiếm chuyên biệt cho
độ phân giải ký hiệu thời gian chạy.

--defsym =biểu tượng=biểu hiện
Tạo một biểu tượng toàn cục trong tệp đầu ra, chứa địa chỉ tuyệt đối được cung cấp bởi
biểu hiện. Bạn có thể sử dụng tùy chọn này nhiều lần nếu cần để xác định nhiều
ký hiệu trong dòng lệnh. Một dạng số học hạn chế được hỗ trợ cho
biểu hiện trong ngữ cảnh này: bạn có thể cung cấp một hằng số thập lục phân hoặc tên của một
biểu tượng hiện có hoặc sử dụng "+" và "-" để thêm hoặc trừ các hằng số thập lục phân hoặc
các ký hiệu. Nếu bạn cần các biểu thức phức tạp hơn, hãy xem xét sử dụng lệnh trình liên kết
ngôn ngữ từ một tập lệnh. Lưu ý: không được có khoảng trắng giữa biểu tượng, Các
dấu bằng ("="), và biểu hiện.

--demangle [=phong cách]
--no-demangle
Các tùy chọn này kiểm soát việc có gỡ bỏ các tên biểu tượng trong các thông báo lỗi và các
đầu ra. Khi trình liên kết được yêu cầu gỡ bỏ, nó sẽ cố gắng trình bày các tên biểu tượng trong một
thời trang có thể đọc được: nó xóa các dấu gạch dưới hàng đầu nếu chúng được tệp đối tượng sử dụng
và chuyển đổi các tên ký hiệu bị lệch C ++ thành các tên người dùng có thể đọc được. Khác nhau
các trình biên dịch có các phong cách mangling khác nhau. Đối số kiểu tách loại tùy chọn có thể
được sử dụng để chọn một kiểu tách phù hợp cho trình biên dịch của bạn. Trình liên kết sẽ
gỡ rối theo mặc định trừ khi biến môi trường COLLECT_NO_DEMANGLE được thiết lập. Này
tùy chọn có thể được sử dụng để ghi đè mặc định.

-Ihồ sơ
--dynamic-linker =hồ sơ
Đặt tên của trình liên kết động. Điều này chỉ có ý nghĩa khi tạo
các tệp thực thi ELF được liên kết động. Trình liên kết động mặc định thường đúng;
không sử dụng điều này trừ khi bạn biết bạn đang làm gì.

--no-dynamic-linker
Khi tạo tệp thực thi, hãy bỏ qua yêu cầu trình liên kết động được sử dụng tại
thời gian tải. Điều này chỉ có ý nghĩa đối với các tệp thực thi ELF có chứa động
chuyển vị trí và thường yêu cầu mã điểm nhập có khả năng xử lý các
sự tái định cư.

- cảnh báo chất béo
- cảnh báo không gây tử vong
Coi tất cả các cảnh báo là lỗi. Hành vi mặc định có thể được khôi phục với tùy chọn
- cảnh báo không gây tử vong.

hậu tố --force-exe-
Đảm bảo rằng tệp đầu ra có hậu tố .exe.

Nếu tệp đầu ra được liên kết đầy đủ được tạo thành công không có ".exe" hoặc ".dll"
hậu tố, tùy chọn này buộc trình liên kết sao chép tệp đầu ra sang một trong những tệp cùng tên
với hậu tố ".exe". Tùy chọn này hữu ích khi sử dụng các makefiles Unix chưa sửa đổi trên một
Máy chủ Microsoft Windows, vì một số phiên bản Windows sẽ không chạy hình ảnh trừ khi nó
kết thúc bằng hậu tố ".exe".

--gc-phần
--no-gc-section
Bật tính năng thu gom rác của các phần đầu vào không sử dụng. Nó bị bỏ qua trên các mục tiêu làm
không hỗ trợ tùy chọn này. Hành vi mặc định (không thực hiện rác này
bộ sưu tập) có thể được khôi phục bằng cách chỉ định --no-gc-section trên dòng lệnh. Ghi chú
việc thu gom rác cho các mục tiêu định dạng COFF và PE được hỗ trợ, nhưng
việc triển khai hiện đang được coi là thử nghiệm.

--gc-phần quyết định phần đầu vào nào được sử dụng bằng cách kiểm tra các ký hiệu và
sự tái định cư. Phần chứa ký hiệu mục nhập và tất cả các phần chứa
các ký hiệu không xác định trên dòng lệnh sẽ được giữ lại, cũng như các phần chứa
các ký hiệu được tham chiếu bởi các đối tượng động. Lưu ý rằng khi xây dựng các thư viện được chia sẻ,
trình liên kết phải giả định rằng bất kỳ ký hiệu hiển thị nào đều được tham chiếu. Sau khi tập hợp ban đầu này của
các phần đã được xác định, trình liên kết đánh dấu đệ quy là được sử dụng bất kỳ phần nào
được tham chiếu bởi các lần chuyển địa điểm của họ. Nhìn thấy --lối vào--không xác định.

Tùy chọn này có thể được đặt khi thực hiện liên kết một phần (được kích hoạt với tùy chọn -r). Trong này
trường hợp gốc của các ký hiệu được lưu giữ phải được chỉ định rõ ràng bởi một --lối vào or
--không xác định hoặc bằng lệnh "ENTRY" trong tập lệnh trình liên kết.

--print-gc-section
--no-print-gc-section
Liệt kê tất cả các phần bị loại bỏ bởi bộ sưu tập rác. Danh sách được in trên stderr.
Tùy chọn này chỉ có hiệu quả nếu tính năng thu gom rác đã được bật qua
--gc-phần) Lựa chọn. Hành vi mặc định (không liệt kê các phần
loại bỏ) có thể được khôi phục bằng cách chỉ định --no-print-gc-section trên dòng lệnh.

- print-output-format
In tên của định dạng đầu ra mặc định (có thể bị ảnh hưởng bởi dòng lệnh khác
tùy chọn). Đây là chuỗi sẽ xuất hiện trong tập lệnh trình liên kết "OUTPUT_FORMAT"
chỉ huy.

- in-bộ nhớ-sử dụng
In kích thước đã sử dụng, tổng kích thước và kích thước đã sử dụng của các vùng bộ nhớ được tạo bằng NHỚ
chỉ huy. Điều này hữu ích trên các mục tiêu được nhúng để có cái nhìn nhanh về lượng miễn phí
kỉ niệm. Định dạng của đầu ra có một dòng tiêu đề và một dòng cho mỗi vùng. Nó là
cả con người đều có thể đọc được và có thể phân tích cú pháp dễ dàng bằng các công cụ. Đây là một ví dụ về đầu ra:

Vùng nhớ Đã sử dụng Kích thước Vùng Kích thước% tuổi Đã sử dụng
ROM: 256 KB 1 MB 25.00%
RAM: 32 B 2 GB 0.00%

--Cứu giúp
In bản tóm tắt các tùy chọn dòng lệnh trên đầu ra và lối ra tiêu chuẩn.

- mục tiêu-trợ giúp
In bản tóm tắt của tất cả các tùy chọn cụ thể mục tiêu trên đầu ra và lối ra tiêu chuẩn.

-Bản đồ =mapfile
In bản đồ liên kết tới tệp mapfile. Xem mô tả của -M tùy chọn ở trên.

- không lưu giữ bộ nhớ
ld thường tối ưu hóa cho tốc độ sử dụng bộ nhớ bằng cách lưu vào bộ nhớ đệm các bảng ký hiệu của
đầu vào các tập tin trong bộ nhớ. Tùy chọn này cho biết ld thay vào đó, tối ưu hóa cho việc sử dụng bộ nhớ, bằng cách
đọc lại các bảng ký hiệu khi cần thiết. Điều này có thể được yêu cầu nếu ld hết
không gian bộ nhớ trong khi liên kết một tệp thực thi lớn.

- không xác định
-z phản đối
Báo cáo các tham chiếu ký hiệu chưa được giải quyết từ các tệp đối tượng thông thường. Điều này được thực hiện ngay cả khi
trình liên kết đang tạo một thư viện được chia sẻ không tượng trưng. Công tắc
- [no-] allow-shlib-undefined kiểm soát hành vi để báo cáo chưa được giải quyết
tài liệu tham khảo được tìm thấy trong các thư viện được chia sẻ được liên kết trong.

- cho phép nhiều định nghĩa
-z muldefs
Thông thường, khi một biểu tượng được xác định nhiều lần, trình liên kết sẽ báo cáo
lỗi. Các tùy chọn này cho phép nhiều định nghĩa và định nghĩa đầu tiên sẽ được sử dụng.

--allow-shlib-undefined
--no-allow-shlib-undefined
Cho phép hoặc không cho phép các ký hiệu không xác định trong thư viện được chia sẻ. Công tắc này tương tự như
- không xác định ngoại trừ việc nó xác định hành vi khi các ký hiệu không xác định
trong một thư viện được chia sẻ thay vì một tệp đối tượng thông thường. Nó không ảnh hưởng đến cách
các ký hiệu không xác định trong các tệp đối tượng thông thường được xử lý.

Hành vi mặc định là báo cáo lỗi cho bất kỳ ký hiệu không xác định nào được tham chiếu trong
thư viện được chia sẻ nếu trình liên kết đang được sử dụng để tạo tệp thực thi, nhưng để cho phép
chúng nếu trình liên kết đang được sử dụng để tạo thư viện được chia sẻ.

Lý do cho phép tham chiếu ký hiệu không xác định trong các thư viện được chia sẻ được chỉ định tại
thời gian liên kết là:

· Thư viện được chia sẻ được chỉ định tại thời điểm liên kết có thể không giống với thư viện được
có sẵn tại thời điểm tải, do đó, biểu tượng thực sự có thể phân giải được tại thời điểm tải.

· Có một số hệ điều hành, ví dụ như BeOS và HPPA, trong đó các ký hiệu không xác định trong
thư viện chia sẻ là bình thường.

Ví dụ: hạt nhân BeOS vá các thư viện được chia sẻ tại thời điểm tải để chọn
chức năng nào phù hợp nhất với kiến ​​trúc hiện tại. Đây là
được sử dụng, chẳng hạn, để chọn động một hàm memset thích hợp.

- không-không-xác-định-phiên-bản
Thông thường, khi một biểu tượng có phiên bản không xác định, trình liên kết sẽ bỏ qua nó. Cái này
tùy chọn không cho phép các biểu tượng có phiên bản không xác định và một lỗi nghiêm trọng sẽ được đưa ra
thay thế.

--default-symver
Tạo và sử dụng phiên bản ký hiệu mặc định (tên gọi) cho các ký hiệu đã xuất chưa phiên bản.

--default-import-symver
Tạo và sử dụng phiên bản ký hiệu mặc định (tên gọi) cho các ký hiệu đã nhập chưa phiên bản.

--no-warning-mismatch
Thông thường ld sẽ xuất hiện lỗi nếu bạn cố gắng liên kết các tệp đầu vào với nhau
không khớp vì một số lý do, có lẽ vì chúng đã được biên soạn cho các
bộ xử lý hoặc cho các thiết bị cuối cùng khác nhau. Tùy chọn này cho biết ld rằng nó nên
âm thầm cho phép các lỗi có thể xảy ra như vậy. Tùy chọn này chỉ nên được sử dụng cẩn thận, trong
các trường hợp khi bạn đã thực hiện một số hành động đặc biệt để đảm bảo rằng các lỗi của trình liên kết là
không phù hợp.

--no-warning-search-mismatch
Thông thường ld sẽ đưa ra cảnh báo nếu nó tìm thấy một thư viện không tương thích trong một thư viện
Tìm kiếm. Tùy chọn này làm tắt tiếng cảnh báo.

- không có toàn bộ lưu trữ
Tắt hiệu ứng của --whole-archive tùy chọn cho các tệp lưu trữ tiếp theo.

--noinression-executive
Giữ lại tệp đầu ra thực thi bất cứ khi nào nó vẫn có thể sử dụng được. Thông thường, trình liên kết
sẽ không tạo ra tệp đầu ra nếu nó gặp lỗi trong quá trình liên kết; nó
thoát mà không ghi tệp đầu ra khi nó gặp bất kỳ lỗi nào.

-nostdlib
Chỉ tìm kiếm các thư mục thư viện được chỉ định rõ ràng trên dòng lệnh. Thư viện
các thư mục được chỉ định trong các tập lệnh trình liên kết (bao gồm các tập lệnh trình liên kết được chỉ định trên
dòng lệnh) bị bỏ qua.

--oformat =định dạng đầu ra
ld có thể được cấu hình để hỗ trợ nhiều loại tệp đối tượng. Nếu là của bạn ld is
được định cấu hình theo cách này, bạn có thể sử dụng --oformat tùy chọn để chỉ định định dạng nhị phân cho
tệp đối tượng đầu ra. Ngay cả khi ld được định cấu hình để hỗ trợ đối tượng thay thế
, bạn thường không cần chỉ định điều này, như ld nên được cấu hình để sản xuất
như một định dạng đầu ra mặc định, định dạng thông thường nhất trên mỗi máy. định dạng đầu ra là một
chuỗi văn bản, tên của một định dạng cụ thể được hỗ trợ bởi các thư viện BFD. (Bạn có thể
liệt kê các định dạng nhị phân có sẵn với phản đối -i.) Lệnh script
"OUTPUT_FORMAT" cũng có thể chỉ định định dạng đầu ra, nhưng tùy chọn này sẽ ghi đè nó.

-pie
--pic-thực thi
Tạo một vị trí thực thi độc lập. Điều này hiện chỉ được hỗ trợ trên ELF
nền tảng. Vị trí các tệp thực thi độc lập tương tự như các thư viện được chia sẻ ở chỗ
chúng được trình liên kết động chuyển đến địa chỉ ảo mà hệ điều hành chọn cho
chúng (có thể khác nhau giữa các lần gọi). Giống như các tệp thực thi được liên kết động bình thường
chúng có thể được thực thi và các ký hiệu được xác định trong tệp thực thi không thể bị ghi đè bởi
thư viện dùng chung.

-qmagic
Tùy chọn này bị bỏ qua để tương thích với Linux.

-Qy Tùy chọn này bị bỏ qua để tương thích với SVR4.

--thư giãn
- không thư giãn
Một tùy chọn với các hiệu ứng phụ thuộc vào máy. Tùy chọn này chỉ được hỗ trợ trên một số
mục tiêu.

Trên một số nền tảng, --thư giãn tùy chọn thực hiện mục tiêu cụ thể, tối ưu hóa toàn cầu
điều đó trở nên khả thi khi trình liên kết giải quyết địa chỉ trong chương trình, chẳng hạn như
chế độ địa chỉ thư giãn, tổng hợp các hướng dẫn mới, chọn phiên bản ngắn hơn của
hướng dẫn hiện tại và kết hợp các giá trị không đổi.

Trên một số nền tảng, các tối ưu hóa toàn cầu về thời gian liên kết này có thể thực hiện gỡ lỗi tượng trưng
kết quả là không thể thực thi được. Đây được biết là trường hợp của Matsushita
Dòng vi xử lý MN10200 và MN10300.

Trên các nền tảng không hỗ trợ điều này, --thư giãn được chấp nhận, nhưng bị bỏ qua.

Trên các nền tảng nơi --thư giãn được chấp nhận tùy chọn - không thư giãn có thể được sử dụng để vô hiệu hóa
tính năng.

--retain-Symbol-file =tên tập tin
Giữ lại có thể các ký hiệu được liệt kê trong tệp tên tập tin, loại bỏ tất cả những người khác. tên tập tin
chỉ đơn giản là một tệp phẳng, với một tên ký hiệu trên mỗi dòng. Tùy chọn này đặc biệt
hữu ích trong các môi trường (chẳng hạn như VxWorks) nơi có một bảng ký hiệu toàn cầu lớn
tích lũy dần dần, để bảo tồn bộ nhớ thời gian chạy.

--retain-Symbol-file làm không phải loại bỏ các ký hiệu không xác định hoặc các ký hiệu cần thiết cho
sự tái định cư.

Bạn chỉ có thể chỉ định --retain-Symbol-file một lần trong dòng lệnh. Nó ghi đè -s
-S.

-rpath =dir
Thêm thư mục vào đường dẫn tìm kiếm thư viện thời gian chạy. Điều này được sử dụng khi liên kết một ELF
thực thi với các đối tượng được chia sẻ. Tất cả các -rpath các đối số được nối và chuyển đến
trình liên kết thời gian chạy, sử dụng chúng để định vị các đối tượng được chia sẻ trong thời gian chạy. Các -rpath
tùy chọn cũng được sử dụng khi định vị các đối tượng được chia sẻ mà các đối tượng được chia sẻ cần
được đưa vào liên kết một cách rõ ràng; xem mô tả của -rpath-link Lựa chọn. Nếu như
-rpath không được sử dụng khi liên kết tệp thực thi ELF, nội dung của môi trường
biến "LD_RUN_PATH" sẽ được sử dụng nếu nó được xác định.

Mô hình -rpath tùy chọn cũng có thể được sử dụng trên SunOS. Theo mặc định, trên SunOS, trình liên kết sẽ
hình thành một đường dẫn tìm kiếm thời gian chạy từ tất cả các -L các tùy chọn nó được đưa ra. Nếu một -rpath tùy chọn
được sử dụng, đường dẫn tìm kiếm thời gian chạy sẽ được tạo riêng bằng cách sử dụng -rpath tùy chọn
bỏ qua -L tùy chọn. Điều này có thể hữu ích khi sử dụng gcc, bổ sung nhiều -L
các tùy chọn có thể có trên hệ thống tệp được gắn kết NFS.

Để tương thích với các trình liên kết ELF khác, nếu -R theo sau là một thư mục
tên, thay vì tên tệp, nó được coi là -rpath tùy chọn.

-rpath-link =dir
Khi sử dụng ELF hoặc SunOS, một thư viện dùng chung có thể yêu cầu một thư viện khác. Điều này xảy ra khi một
Liên kết "ld -shared" bao gồm một thư viện được chia sẻ như một trong những tệp đầu vào.

Khi trình liên kết gặp phải sự phụ thuộc như vậy khi thực hiện một
liên kết, nó sẽ tự động cố gắng xác định thư viện được chia sẻ bắt buộc và đưa vào
trong liên kết, nếu nó không được đưa vào một cách rõ ràng. Trong trường hợp này, -rpath-link tùy chọn
chỉ định tập hợp thư mục đầu tiên để tìm kiếm. Các -rpath-link tùy chọn có thể chỉ định
một chuỗi các tên thư mục hoặc bằng cách chỉ định một danh sách các tên được phân tách bằng
dấu hai chấm, hoặc bằng cách xuất hiện nhiều lần.

Tùy chọn này nên được sử dụng thận trọng vì nó ghi đè đường dẫn tìm kiếm có thể có
đã được biên dịch thành một thư viện chia sẻ. Trong trường hợp này, có thể sử dụng
vô tình một đường dẫn tìm kiếm khác với trình liên kết thời gian chạy sẽ làm.

Trình liên kết sử dụng các đường dẫn tìm kiếm sau để tìm các thư viện được chia sẻ bắt buộc:

1. Bất kỳ thư mục nào được chỉ định bởi -rpath-link tùy chọn.

2. Bất kỳ thư mục nào được chỉ định bởi -rpath tùy chọn. Sự khác biệt giữa -rpath
-rpath-link đó có phải là thư mục được chỉ định bởi -rpath các tùy chọn được bao gồm trong
có thể thực thi và được sử dụng trong thời gian chạy, trong khi -rpath-link tùy chọn chỉ có hiệu quả
tại thời điểm liên kết. Đang tìm kiếm -rpath theo cách này chỉ được hỗ trợ bởi các trình liên kết gốc và
trình liên kết chéo đã được định cấu hình với --with-sysroot tùy chọn.

3. Trên hệ thống ELF, đối với trình liên kết gốc, nếu -rpath-rpath-link các lựa chọn đã
không được sử dụng, hãy tìm kiếm nội dung của biến môi trường "LD_RUN_PATH".

4. Trên SunOS, nếu -rpath tùy chọn không được sử dụng, hãy tìm kiếm bất kỳ thư mục nào được chỉ định
sử dụng -L tùy chọn.

5. Đối với trình liên kết gốc, hãy tìm kiếm nội dung của biến môi trường
"LD_LIBRARY_PATH".

6. Đối với trình liên kết ELF gốc, các thư mục trong "DT_RUNPATH" hoặc "DT_RPATH" của một
thư viện được tìm kiếm các thư viện chia sẻ cần thiết cho nó. Các mục "DT_RPATH" là
bị bỏ qua nếu các mục nhập "DT_RUNPATH" tồn tại.

7. Các thư mục mặc định, bình thường / lib/ Usr / lib.

8. Đối với trình liên kết gốc trên hệ thống ELF, nếu tệp /etc/ld.so.conf tồn tại, danh sách
trong số các thư mục được tìm thấy trong tệp đó.

Nếu không tìm thấy thư viện được chia sẻ bắt buộc, trình liên kết sẽ đưa ra cảnh báo và
tiếp tục với liên kết.

-chia sẻ
-Có thể chia sẻ
Tạo một thư viện chia sẻ. Điều này hiện chỉ được hỗ trợ trên ELF, XCOFF và SunOS
nền tảng. Trên SunOS, trình liên kết sẽ tự động tạo một thư viện được chia sẻ nếu -e
tùy chọn không được sử dụng và có các ký hiệu không xác định trong liên kết.

--sort-common
--sort-common = tăng dần
--sort-common = giảm dần
Tùy chọn này cho biết ld để sắp xếp các ký hiệu phổ biến theo căn chỉnh tăng dần hoặc
thứ tự giảm dần khi nó đặt chúng vào các phần đầu ra thích hợp. Biểu tượng
các căn chỉnh được xem xét là mười sáu byte hoặc lớn hơn, tám byte, bốn byte, hai byte và
một byte. Điều này là để ngăn chặn khoảng cách giữa các ký hiệu do các ràng buộc về căn chỉnh. Nếu không
thứ tự sắp xếp được chỉ định, sau đó thứ tự giảm dần được giả định.

--sort-section = tên
Tùy chọn này sẽ áp dụng "SORT_BY_NAME" cho tất cả các mẫu phần ký tự đại diện trong trình liên kết
kịch bản.

--sort-section = alignment
Tùy chọn này sẽ áp dụng "SORT_BY_ALIGNMENT" cho tất cả các mẫu phần ký tự đại diện trong
tập lệnh trình liên kết.

--split-by-file [=kích thước]
Tương tự như - đèn chiếu theo từng vị trí nhưng tạo một phần đầu ra mới cho mỗi tệp đầu vào khi
kích thước đạt được kích thước mặc định là kích thước 1 nếu không được cung cấp.

--split-by-moving [=tính]
Cố gắng tạo các phần bổ sung trong tệp đầu ra để không có phần đầu ra duy nhất nào trong
tập tin chứa nhiều hơn tính sự tái định cư. Điều này rất hữu ích khi tạo ra
các tệp có thể định vị lại để tải xuống vào một số hạt nhân thời gian thực nhất định với đối tượng COFF
định dạng tệp; vì COFF không thể đại diện cho hơn 65535 lần chuyển địa điểm trong một
phần. Lưu ý rằng điều này sẽ không hoạt động với các định dạng tệp đối tượng không
hỗ trợ các phần tùy ý. Trình liên kết sẽ không chia nhỏ các phần đầu vào riêng lẻ
để phân phối lại, vì vậy nếu một phần đầu vào chứa nhiều hơn tính tái định cư
một phần đầu ra sẽ chứa nhiều vị trí. tính mặc định giá trị là
32768.

--stats
Tính toán và hiển thị thống kê về hoạt động của trình liên kết, chẳng hạn như thực thi
sử dụng thời gian và bộ nhớ.

--sysroot =thư mục
Sử dụng thư mục làm vị trí của sysroot, ghi đè mặc định thời gian cấu hình.
Tùy chọn này chỉ được hỗ trợ bởi các trình liên kết đã được định cấu hình bằng --with-sysroot.

- định dạng chuyển tiếp
Đối với một số mục tiêu, đầu ra của ld theo một số cách khác với kết quả của một số
trình liên kết hiện có. Công tắc này yêu cầu ld để sử dụng định dạng truyền thống thay thế.

Ví dụ, trên SunOS, ld kết hợp các mục trùng lặp trong bảng chuỗi ký hiệu. Cái này
có thể giảm kích thước của tệp đầu ra với đầy đủ thông tin gỡ lỗi xuống hơn 30
phần trăm. Rất tiếc, chương trình "dbx" của SunOS không thể đọc chương trình kết quả
("gdb" không có vấn đề gì). Các - định dạng chuyển tiếp chuyển đổi nói với ld không kết hợp
các mục trùng lặp.

--section-start =tên phần=org
Định vị một phần trong tệp đầu ra tại địa chỉ tuyệt đối được cung cấp bởi org. Bạn có thể sử dụng
tùy chọn này nhiều lần nếu cần để định vị nhiều phần trong lệnh
hàng. org phải là một số nguyên thập lục phân duy nhất; để tương thích với các trình liên kết khác,
bạn có thể bỏ qua phần đầu 0x thường được kết hợp với các giá trị thập lục phân. Lưu ý:
không được có khoảng trắng giữa tên phần, dấu bằng ("="), và org.

-Tbss =org
-Tdata =org
-Ttext =org
Giống như - phần-bắt đầu, với ".bss", ".data" hoặc ".text" làm tên phần.

-Ttext-segment =org
Khi tạo tệp thực thi ELF, nó sẽ đặt địa chỉ của byte đầu tiên của văn bản
phân khúc.

-Phân đoạn dữ liệu =org
Khi tạo một đối tượng thực thi hoặc chia sẻ ELF cho một mục tiêu có dữ liệu chỉ đọc
nằm trong phân đoạn riêng của nó tách biệt với văn bản thực thi, nó sẽ đặt địa chỉ của
byte đầu tiên của phân đoạn dữ liệu chỉ đọc.

-Tldata-segment =org
Khi tạo một đối tượng thực thi hoặc chia sẻ ELF cho mô hình bộ nhớ trung bình x86-64, nó
sẽ đặt địa chỉ của byte đầu tiên của đoạn ldata.

--unresolved-Symbol =phương pháp
Xác định cách xử lý các ký hiệu chưa được giải quyết. Có bốn giá trị có thể có cho
phương pháp:

bỏ qua tất cả
Không báo cáo bất kỳ ký hiệu chưa được giải quyết.

báo cáo tất cả
Báo cáo tất cả các ký hiệu chưa được giải quyết. Đây là mặc định.

bỏ qua-trong-đối-tượng-tệp
Báo cáo các ký hiệu chưa được giải quyết có trong thư viện được chia sẻ, nhưng bỏ qua chúng
nếu chúng đến từ các tệp đối tượng thông thường.

bỏ qua-trong-chia sẻ-libs
Báo cáo các ký hiệu chưa được giải quyết đến từ các tệp đối tượng thông thường, nhưng bỏ qua chúng nếu
chúng đến từ các thư viện được chia sẻ. Điều này có thể hữu ích khi tạo một động
nhị phân và người ta biết rằng tất cả các thư viện được chia sẻ mà nó phải được tham chiếu
được đưa vào dòng lệnh của trình liên kết.

Hành vi của riêng các thư viện được chia sẻ cũng có thể được kiểm soát bởi
- [no-] allow-shlib-undefined tùy chọn.

Thông thường, trình liên kết sẽ tạo thông báo lỗi cho mỗi ký hiệu chưa được giải quyết được báo cáo
nhưng tùy chọn - ký hiệu cảnh báo-chưa được giải quyết có thể thay đổi điều này thành một cảnh báo.

--dll-verbose
--verbose [=CON SỐ]
Hiển thị số phiên bản cho ld và liệt kê các mô phỏng trình liên kết được hỗ trợ. Trưng bày
những tệp đầu vào nào có thể và không thể mở được. Hiển thị tập lệnh trình liên kết đang được sử dụng bởi
trình liên kết. Nếu tùy chọn CON SỐ đối số> 1, trạng thái biểu tượng plugin cũng sẽ là
hiển thị.

--version-script =version-scriptfile
Chỉ định tên của tập lệnh phiên bản cho trình liên kết. Điều này thường được sử dụng khi
tạo thư viện chia sẻ để chỉ định thông tin bổ sung về phiên bản
phân cấp cho thư viện đang được tạo. Tùy chọn này chỉ được hỗ trợ đầy đủ trên ELF
nền tảng hỗ trợ các thư viện được chia sẻ; Thấy chưa PHIÊN BẢN. Nó được hỗ trợ một phần trên
Nền tảng PE, có thể sử dụng tập lệnh phiên bản để lọc khả năng hiển thị biểu tượng trong tự động xuất
chế độ: bất kỳ ký hiệu nào được đánh dấu địa phương trong kịch bản phiên bản sẽ không được xuất.

- lùn-chung
Cảnh báo khi một biểu tượng chung được kết hợp với một biểu tượng chung khác hoặc với một biểu tượng
Định nghĩa. Trình liên kết Unix cho phép thực hành hơi cẩu thả này, nhưng trình liên kết trên một số
các hệ điều hành khác thì không. Tùy chọn này cho phép bạn tìm ra các vấn đề tiềm ẩn
từ việc kết hợp các ký hiệu toàn cầu. Thật không may, một số thư viện C sử dụng phương pháp này, vì vậy
bạn có thể nhận được một số cảnh báo về các ký hiệu trong thư viện cũng như trong chương trình của bạn.

Có ba loại ký hiệu toàn cục, được minh họa ở đây bằng các ví dụ C:

int i = 1;
Một định nghĩa, nằm trong phần dữ liệu khởi tạo của tệp đầu ra.

bên ngoài int i;
Tham chiếu không xác định, không phân bổ không gian. Phải có một
định nghĩa hoặc một ký hiệu chung cho biến ở đâu đó.

int i;
Một biểu tượng chung. Nếu chỉ có (một hoặc nhiều) ký hiệu chung cho một biến,
nó nằm trong vùng dữ liệu chưa khởi tạo của tệp đầu ra. Trình liên kết hợp nhất
nhiều ký hiệu chung cho cùng một biến thành một ký hiệu duy nhất. Nếu họ là
có kích thước khác nhau, nó chọn kích thước lớn nhất. Trình liên kết biến một biểu tượng chung
thành một khai báo, nếu có một định nghĩa của cùng một biến.

Mô hình - lùn-chung tùy chọn có thể tạo ra năm loại cảnh báo. Mỗi cảnh báo bao gồm
một cặp dòng: dòng đầu tiên mô tả biểu tượng vừa gặp và dòng thứ hai
mô tả ký hiệu trước đó gặp phải với cùng tên. Một hoặc cả hai
các biểu tượng sẽ là một biểu tượng chung.

1. Biến một biểu tượng chung thành một tham chiếu, vì đã có định nghĩa
cho biểu tượng.

( ): cảnh báo: chung của ` '
bị ghi đè bởi định nghĩa
( ): cảnh báo: được định nghĩa ở đây

2. Biến một biểu tượng chung thành một tham chiếu, bởi vì một định nghĩa sau cho
gặp phải biểu tượng. Điều này giống với trường hợp trước, ngoại trừ
các biểu tượng được gặp theo một thứ tự khác.

( ): warning: định nghĩa của ` '
ghi đè chung
( ): cảnh báo: phổ biến là ở đây

3. Sáp nhập một ký hiệu chung với một ký hiệu chung có cùng kích thước trước đó.

( ): cảnh báo: nhiều chung
của ` '
( ): cảnh báo: thông thường trước đây là ở đây

4. Hợp nhất một biểu tượng chung với một biểu tượng chung lớn hơn trước đó.

( ): cảnh báo: chung của ` '
bị ghi đè bởi chung lớn hơn
( ): cảnh báo: phổ biến lớn hơn là ở đây

5. Sáp nhập một biểu tượng chung với một biểu tượng chung nhỏ hơn trước đó. Cái này cũng vậy
như trường hợp trước, ngoại trừ việc các ký hiệu gặp trong một
trật tự.

( ): cảnh báo: chung của ` '
ghi đè thông thường nhỏ hơn
( ): cảnh báo: phổ biến nhỏ hơn ở đây

- các nhà xây dựng cảnh báo
Cảnh báo nếu có bất kỳ hàm tạo toàn cục nào được sử dụng. Điều này chỉ hữu ích cho một vài tệp đối tượng
các định dạng. Đối với các định dạng như COFF hoặc ELF, trình liên kết không thể phát hiện việc sử dụng toàn cầu
các nhà xây dựng.

--warn-nhiều-gp
Cảnh báo nếu nhiều giá trị con trỏ chung được yêu cầu trong tệp đầu ra. Đây chỉ là
có ý nghĩa đối với một số bộ xử lý nhất định, chẳng hạn như Alpha. Cụ thể, một số bộ vi xử lý
đặt các hằng số có giá trị lớn trong một phần đặc biệt. Một sổ đăng ký đặc biệt (toàn cầu
con trỏ) trỏ vào giữa phần này, để có thể tải các hằng số
hiệu quả thông qua chế độ định địa chỉ tương đối của thanh ghi cơ sở. Kể từ khi bù đắp trong cơ sở-
chế độ tương đối của thanh ghi là cố định và tương đối nhỏ (ví dụ: 16 bit), điều này hạn chế
kích thước tối đa của nhóm không đổi. Do đó, trong các chương trình lớn, thường cần phải
sử dụng nhiều giá trị con trỏ toàn cục để có thể giải quyết tất cả các
các hằng số. Tùy chọn này khiến cảnh báo được đưa ra bất cứ khi nào trường hợp này xảy ra.

--warn-một lần
Chỉ cảnh báo một lần cho mỗi ký hiệu không xác định, thay vì một lần cho mỗi mô-đun đề cập đến
nó.

--warn-section-align
Cảnh báo nếu địa chỉ của phần đầu ra bị thay đổi do căn chỉnh. Tiêu biểu,
sự liên kết sẽ được thiết lập bởi một phần đầu vào. Địa chỉ sẽ chỉ được thay đổi nếu nó
không được chỉ định rõ ràng; nghĩa là, nếu lệnh "SECTIONS" không chỉ định bắt đầu
địa chỉ cho phần.

--warn-shared-textrel
Cảnh báo nếu trình liên kết thêm DT_TEXTREL vào đối tượng được chia sẻ.

--warn-thay thế-em
Cảnh báo nếu một đối tượng có mã máy ELF thay thế.

- ký hiệu cảnh báo-chưa được giải quyết
Nếu trình liên kết sẽ báo cáo một ký hiệu chưa được giải quyết (xem tùy chọn
- ký hiệu không được giải quyết) nó thường sẽ tạo ra một lỗi. Tùy chọn này làm cho nó
tạo cảnh báo thay thế.

--error-chưa được giải quyết-ký hiệu
Điều này khôi phục hành vi mặc định của trình liên kết là tạo ra lỗi khi nó đang báo cáo
các ký hiệu chưa được giải đáp.

--whole-archive
Đối với mỗi kho lưu trữ được đề cập trên dòng lệnh sau --whole-archive Tùy chọn,
bao gồm mọi tệp đối tượng trong kho lưu trữ trong liên kết, thay vì tìm kiếm
lưu trữ cho các tệp đối tượng cần thiết. Điều này thường được sử dụng để chuyển một tệp lưu trữ
vào thư viện được chia sẻ, buộc mọi đối tượng phải được đưa vào
thư viện. Tùy chọn này có thể được sử dụng nhiều lần.

Hai lưu ý khi sử dụng tùy chọn này từ gcc: Thứ nhất, gcc không biết về tùy chọn này,
vì vậy bạn phải sử dụng -Wl, -whole-archive. Thứ hai, đừng quên sử dụng
-L, -không toàn bộ-lưu trữ sau danh sách các kho lưu trữ của bạn, vì gcc sẽ thêm danh sách của riêng mình
lưu trữ đến liên kết của bạn và bạn có thể không muốn cờ này ảnh hưởng đến những liên kết đó.

--wrap =biểu tượng
Sử dụng một hàm trình bao bọc cho biểu tượng. Bất kỳ tham chiếu không xác định nào tới biểu tượng sẽ được giải quyết
quấn_Biểu tượng". Bất kỳ tham chiếu không xác định nào tới "__real_Biểu tượng" sẽ được giải quyết
biểu tượng.

Điều này có thể được sử dụng để cung cấp một trình bao bọc cho một chức năng hệ thống. Chức năng trình bao bọc
nên được gọi là "__wrap_Biểu tượng". Nếu nó muốn gọi hàm hệ thống, nó phải
gọi "__real_Biểu tượng".

Đây là một ví dụ nhỏ:

void *
__wrap_malloc (size_t c)
{
printf ("malloc được gọi với% zu \ n", c);
return __real_malloc (c);
}

Nếu bạn liên kết mã khác với tệp này bằng cách sử dụng --bọc malloc, sau đó tất cả các lệnh gọi đến "malloc"
sẽ gọi hàm "__wrap_malloc" để thay thế. Cuộc gọi tới "__real_malloc" trong
"__wrap_malloc" sẽ gọi hàm "malloc" thực.

Bạn cũng có thể muốn cung cấp hàm "__real_malloc" để các liên kết không có
--bọc tùy chọn sẽ thành công. Nếu bạn làm điều này, bạn không nên đặt định nghĩa của
"__real_malloc" trong cùng một tệp với "__wrap_malloc"; nếu bạn làm như vậy, người lắp ráp có thể
giải quyết cuộc gọi trước khi trình liên kết có cơ hội chuyển nó thành "malloc".

--eh-frame-hdr
Yêu cầu tạo phần ".eh_frame_hdr" và tiêu đề phân đoạn ELF "PT_GNU_EH_FRAME".

--no-ld-created-unwind-info
Yêu cầu tạo thông tin thư giãn ".eh_frame" cho các phần mã do trình liên kết tạo như
PLT. Tùy chọn này được bật theo mặc định nếu thông tin thư giãn do trình liên kết tạo được hỗ trợ.

--enable-new-dtags
--disable-new-dtags
Trình liên kết này có thể tạo các thẻ động mới trong ELF. Nhưng các hệ thống ELF cũ hơn có thể không
hiểu họ. Nếu bạn chỉ định --enable-new-dtags, các thẻ động mới sẽ là
được tạo khi cần thiết và các thẻ động cũ hơn sẽ bị bỏ qua. Nếu bạn chỉ định
--disable-new-dtags, sẽ không có thẻ động mới nào được tạo. Theo mặc định, động mới
thẻ không được tạo. Lưu ý rằng các tùy chọn đó chỉ có sẵn cho hệ thống ELF.

--hash-size =con số
Đặt kích thước mặc định của bảng băm của trình liên kết thành một số nguyên tố gần với con số.
Việc tăng giá trị này có thể làm giảm khoảng thời gian trình liên kết thực hiện
nhiệm vụ, với chi phí tăng yêu cầu bộ nhớ của trình liên kết. Tương tự
giảm giá trị này có thể làm giảm yêu cầu bộ nhớ với chi phí tốc độ.

--hash-style =phong cách
Đặt loại (các) bảng băm của trình liên kết. phong cách có thể là "sysv" cho ELF cổ điển
phần ".hash", "gnu" cho phần GNU kiểu mới ".gnu.hash" hoặc "cả hai" cho cả hai
ELF cổ điển ".hash" và bảng băm GNU ".gnu.hash" kiểu mới. Mặc định là "sysv".

--compress-debug-section = none
--compress-debug-section = zlib
--compress-debug-section = zlib-gnu
--compress-debug-section = zlib-gabi
Trên nền tảng ELF, các tùy chọn này kiểm soát cách các phần gỡ lỗi DWARF được nén bằng cách sử dụng
zlib. --compress-debug-section = none không nén các phần gỡ lỗi DWARF.
--compress-debug-section = zlib-gnu nén các phần gỡ lỗi DWARF và đổi tên phần gỡ lỗi
tên phần bắt đầu bằng .zdebug thay vì .debug. --compress-debug-section = zlib
--compress-debug-section = zlib-gabi nén các phần gỡ lỗi DWARF với
SHF_COMPRESSED từ ELF ABI. Hành vi mặc định khác nhau tùy thuộc vào
mục tiêu liên quan và các tùy chọn cấu hình được sử dụng để xây dựng chuỗi công cụ. Mặc định
có thể được xác định bằng cách kiểm tra đầu ra từ trình liên kết --Cứu giúp tùy chọn.

- giảm thiểu-bộ nhớ-tổng chi phí
Tùy chọn này giảm yêu cầu bộ nhớ trong thời gian chạy ld, với chi phí liên kết
tốc độ, vận tốc. Điều này được giới thiệu để chọn thuật toán O (n ^ 2) cũ cho tệp bản đồ liên kết
thế hệ, thay vì thuật toán O (n) mới sử dụng nhiều hơn khoảng 40% bộ nhớ cho
lưu trữ ký hiệu.

Một tác dụng khác của công tắc là đặt kích thước bảng băm mặc định thành 1021,
lại tiết kiệm bộ nhớ với chi phí kéo dài thời gian chạy của trình liên kết. Điều này không được thực hiện
tuy nhiên nếu --hash-size công tắc đã được sử dụng.

Mô hình - giảm thiểu-bộ nhớ-tổng chi phí công tắc cũng có thể được sử dụng để cho phép các cân bằng khác trong
phiên bản tương lai của trình liên kết.

--build-id
--build-id =phong cách
Yêu cầu tạo phần ghi chú ELF ".note.gnu.build-id" hoặc COFF ".buildid"
phần. Nội dung của ghi chú là các bit duy nhất xác định tệp được liên kết này.
phong cách có thể là "uuid" để sử dụng 128 bit ngẫu nhiên, "sha1" để sử dụng hàm băm SHA160 1 bit trên
các phần quy chuẩn của nội dung đầu ra, "md5" để sử dụng băm MD128 5 bit trên
các phần quy chuẩn của nội dung đầu ra, hoặc "0xchuỗi lục giác " để sử dụng một chuỗi bit đã chọn
được chỉ định dưới dạng số chẵn gồm các chữ số thập lục phân ("-" và ":" các ký tự giữa
các cặp chữ số bị bỏ qua). Nếu như phong cách bị bỏ qua, "sha1" được sử dụng.

Kiểu "md5" và "sha1" tạo ra một số nhận dạng luôn giống nhau trong một
tệp đầu ra giống hệt nhau, nhưng sẽ là duy nhất trong số tất cả các tệp đầu ra không khác nhau. Nó là
không nhằm mục đích được so sánh như một tổng kiểm tra cho nội dung của tệp. Một tệp được liên kết có thể
được thay đổi sau đó bởi các công cụ khác, nhưng chuỗi bit ID xây dựng xác định bản gốc
tệp được liên kết không thay đổi.

Vượt qua "không" cho phong cách tắt cài đặt khỏi bất kỳ tùy chọn "--build-id" nào trước đó trên
dòng lệnh.

Trình liên kết i386 PE hỗ trợ -chia sẻ tùy chọn này khiến đầu ra là
thư viện liên kết động (DLL) thay vì tệp thực thi thông thường. Bạn nên đặt tên cho
xuất "* .dll" khi bạn sử dụng tùy chọn này. Ngoài ra, trình liên kết hỗ trợ đầy đủ
các tệp "* .def" tiêu chuẩn, có thể được chỉ định trên dòng lệnh của trình liên kết giống như một đối tượng
tệp (trên thực tế, nó phải xuất hiện trước các kho lưu trữ mà nó xuất các ký hiệu từ đó, để đảm bảo rằng chúng nhận được
được liên kết trong, giống như một tệp đối tượng bình thường).

Ngoài các tùy chọn chung cho tất cả các mục tiêu, trình liên kết i386 PE hỗ trợ thêm
các tùy chọn dòng lệnh dành riêng cho mục tiêu i386 PE. Các tùy chọn nhận giá trị
có thể được phân tách khỏi các giá trị của chúng bằng dấu cách hoặc dấu bằng.

--add-stdcall-alias
Nếu được cung cấp, các ký hiệu có hậu tố stdcall (@nn) sẽ được xuất nguyên trạng và cũng với
hậu tố tước bỏ. [Tùy chọn này dành riêng cho cổng được nhắm mục tiêu i386 PE của trình liên kết]

--base-file hồ sơ
Sử dụng hồ sơ dưới dạng tên của một tệp để lưu các địa chỉ cơ sở của tất cả
các vị trí cần thiết để tạo DLL với dlltool. [Đây là một i386 PE cụ thể
Lựa chọn]

--dll
Tạo một tệp DLL thay vì tệp thực thi thông thường. Bạn cũng có thể sử dụng -chia sẻ hoặc chỉ định một
"LIBRARY" trong một tệp ".def" nhất định. [Tùy chọn này dành riêng cho i386 PE được nhắm mục tiêu
cổng của trình liên kết]

--enable-long-section-names
- Disable-long-section-names
Các biến thể PE của định dạng đối tượng COFF thêm phần mở rộng cho phép sử dụng
tên phần dài hơn tám ký tự, giới hạn bình thường cho COFF. Theo mặc định,
những tên này chỉ được phép trong các tệp đối tượng, vì các hình ảnh thực thi được liên kết đầy đủ thì không
mang theo bảng chuỗi COFF cần thiết để hỗ trợ các tên dài hơn. Là một phần mở rộng GNU,
cũng có thể cho phép chúng sử dụng trong các hình ảnh thực thi hoặc để (có thể là
vô nghĩa!) không cho phép nó trong các tệp đối tượng, bằng cách sử dụng hai tùy chọn này. Thực thi được
hình ảnh được tạo với các tên phần dài này hơi không chuẩn, mang
chúng thực hiện một bảng chuỗi và có thể tạo ra đầu ra khó hiểu khi được kiểm tra với không phải GNU
Các công cụ nhận biết PE, chẳng hạn như trình xem tệp và trình kết xuất. Tuy nhiên, GDB dựa vào việc sử dụng
Tên phần dài PE để tìm các phần thông tin gỡ lỗi Dwarf-2 trong tệp thực thi
hình ảnh trong thời gian chạy, và vì vậy nếu không có tùy chọn nào được chỉ định trên dòng lệnh, ld sẽ
bật tên phần dài, ghi đè hành vi mặc định và đúng kỹ thuật,
khi nó tìm thấy sự hiện diện của thông tin gỡ lỗi trong khi liên kết một hình ảnh thực thi và
không tước ký hiệu. [Tùy chọn này hợp lệ cho tất cả các cổng được nhắm mục tiêu PE của trình liên kết]

--enable-stdcall-fixup
--disable-stdcall-fixup
Nếu liên kết tìm thấy một ký hiệu mà nó không thể phân giải, nó sẽ cố gắng thực hiện "mờ
liên kết "bằng cách tìm kiếm một ký hiệu đã xác định khác chỉ khác về định dạng của
tên biểu tượng (cdecl vs stdcall) và sẽ giải quyết biểu tượng đó bằng cách liên kết đến trận đấu.
Ví dụ: ký hiệu không xác định "_foo" có thể được liên kết với hàm "_foo @ 12" hoặc
biểu tượng không xác định "_bar @ 16" có thể được liên kết với hàm "_bar". Khi mà
trình liên kết thực hiện điều này, nó in ra một cảnh báo, vì lẽ ra nó thường không liên kết được,
nhưng đôi khi thư viện nhập được tạo từ dll của bên thứ ba có thể cần tính năng này
để có thể sử dụng được. Nếu bạn chỉ định --enable-stdcall-fixup, tính năng này đã được bật đầy đủ
và cảnh báo không được in. Nếu bạn chỉ định --disable-stdcall-fixup, tính năng này là
bị vô hiệu hóa và sự không khớp như vậy được coi là lỗi. [Tùy chọn này dành riêng cho
cổng nhắm mục tiêu i386 PE của trình liên kết]

--leading-underscore
- không có dấu gạch dưới ở đầu
Đối với hầu hết các mục tiêu, tiền tố biểu tượng mặc định là dấu gạch dưới và được xác định trong mục tiêu
sự mô tả. Bằng tùy chọn này, có thể tắt / bật dấu gạch dưới mặc định
tiền tố biểu tượng.

--xuất-tất-cả-biểu-tượng
Nếu được cung cấp, tất cả các ký hiệu toàn cục trong các đối tượng được sử dụng để xây dựng một DLL sẽ được xuất bằng
DLL. Lưu ý rằng đây là mặc định nếu không sẽ không có bất kỳ tệp nào được xuất
các ký hiệu. Khi các biểu tượng được xuất rõ ràng qua tệp DEF hoặc được xuất ngầm
thông qua các thuộc tính hàm, mặc định là không xuất bất kỳ thứ gì khác trừ khi tùy chọn này
được đưa ra. Lưu ý rằng các ký hiệu "DllMain @ 12", "DllEntryPoint @ 0",
"DllMainCRTStartup @ 12" và "impure_ptr" sẽ không được xuất tự động. Cũng,
các ký hiệu được nhập từ các tệp DLL khác sẽ không được tái xuất, cũng như các ký hiệu chỉ định
bố cục bên trong của DLL, chẳng hạn như những bố cục bắt đầu bằng "_head_" hoặc kết thúc bằng
"_iname". Ngoài ra, không có ký hiệu nào từ "libgcc", "libstd ++", "libmingw32" hoặc
"crtX.o" sẽ được xuất. Các ký hiệu có tên bắt đầu bằng "__rtti_" hoặc "__builtin_"
sẽ không được xuất, để trợ giúp với C ++ DLL. Cuối cùng, có một danh sách phong phú về
các ký hiệu cygwin-private không được xuất (hiển nhiên, điều này áp dụng khi xây dựng
DLL cho các mục tiêu cygwin). Các loại trừ cygwin này là: "_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" và "en xung". [Tùy chọn này dành riêng cho i386 PE được nhắm mục tiêu
cổng của trình liên kết]

- ký hiệu bao gồm biểu tượng,biểu tượng, ...
Chỉ định danh sách các ký hiệu không được xuất tự động. Biểu tượng
tên có thể được phân cách bằng dấu phẩy hoặc dấu hai chấm. [Tùy chọn này dành riêng cho i386 PE
cổng được nhắm mục tiêu của trình liên kết]

--exclude-all-symbol
Chỉ định không có ký hiệu nào được xuất tự động. [Tùy chọn này dành riêng cho
cổng nhắm mục tiêu i386 PE của trình liên kết]

--tệp-căn chỉnh
Chỉ định căn chỉnh tệp. Các phần trong tệp sẽ luôn bắt đầu ở độ lệch tệp
là bội số của số này. Giá trị này mặc định là 512. [Tùy chọn này cụ thể
tới cổng được nhắm mục tiêu i386 PE của trình liên kết]

--heap dự trữ
--heap dự trữ,cam kết
Chỉ định số byte bộ nhớ để dự trữ (và tùy chọn cam kết) được sử dụng làm
đống cho chương trình này. Mặc định là 1MB dành riêng, cam kết 4K. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

- cơ sở hình ảnh giá trị
Sử dụng giá trị làm địa chỉ cơ sở của chương trình hoặc dll của bạn. Đây là bộ nhớ thấp nhất
vị trí sẽ được sử dụng khi chương trình hoặc dll của bạn được tải. Để giảm nhu cầu
chuyển vị trí và cải thiện hiệu suất của các viên nén của bạn, mỗi viên phải có một địa chỉ cơ sở duy nhất
và không trùng lặp với bất kỳ hình nền nào khác. Mặc định là 0x400000 cho tệp thực thi và
0x10000000 cho dlls. [Tùy chọn này dành riêng cho cổng nhắm mục tiêu i386 PE của
người liên kết]

--kill-at
Nếu được cung cấp, các hậu tố stdcall (@nn) sẽ bị loại bỏ khỏi các biểu tượng trước khi chúng
đã xuất khẩu. [Tùy chọn này dành riêng cho cổng được nhắm mục tiêu i386 PE của trình liên kết]

- nhận biết địa chỉ lớn
Nếu được cung cấp, bit thích hợp trong trường "Đặc điểm" của tiêu đề COFF sẽ được đặt
để chỉ ra rằng tệp thực thi này hỗ trợ các địa chỉ ảo lớn hơn 2 gigabyte.
Điều này nên được sử dụng cùng với / 3GB hoặc / USERVA =giá trị megabyte chuyển sang
phần "[hệ điều hành]" của BOOT.INI. Nếu không, bit này không có tác dụng.
[Tùy chọn này dành riêng cho các cổng được nhắm mục tiêu PE của trình liên kết]

- vô hiệu hóa-lớn-nhận biết địa chỉ
Hoàn nguyên hiệu ứng của trước đó - nhận biết địa chỉ lớn Lựa chọn. Điều này rất hữu ích nếu
- nhận biết địa chỉ lớn luôn được thiết lập bởi trình điều khiển trình biên dịch (ví dụ: Cygwin gcc) và
thực thi không hỗ trợ địa chỉ ảo lớn hơn 2 gigabyte. [Tùy chọn này
dành riêng cho các cổng được nhắm mục tiêu PE của trình liên kết]

--major-image-version giá trị
Đặt số chính của "phiên bản hình ảnh". Mặc định là 1. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

--major-os-phiên bản giá trị
Đặt số chính của "phiên bản hệ điều hành". Mặc định là 4. [Tùy chọn này cụ thể
tới cổng được nhắm mục tiêu i386 PE của trình liên kết]

--major-hệ thống con-phiên bản giá trị
Đặt số chính của "phiên bản hệ thống con". Mặc định là 4. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

--minor-image-version giá trị
Đặt số thứ tự của "phiên bản hình ảnh". Mặc định là 0. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

--minor-os-phiên bản giá trị
Đặt số nhỏ của "phiên bản hệ điều hành". Mặc định là 0. [Tùy chọn này cụ thể
tới cổng được nhắm mục tiêu i386 PE của trình liên kết]

--minor-hệ thống con-phiên bản giá trị
Đặt số thứ tự của "phiên bản hệ thống con". Mặc định là 0. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

--output-def hồ sơ
Trình liên kết sẽ tạo tệp hồ sơ sẽ chứa tệp DEF tương ứng với
DLL mà trình liên kết đang tạo. Tệp DEF này (nên được gọi là "* .def") có thể
được sử dụng để tạo thư viện nhập với "dlltool" hoặc có thể được sử dụng làm tham chiếu đến
các ký hiệu được xuất tự động hoặc ngầm định. [Tùy chọn này dành riêng cho i386 PE
cổng được nhắm mục tiêu của trình liên kết]

--out-implib hồ sơ
Trình liên kết sẽ tạo tệp hồ sơ sẽ chứa lib nhập tương ứng với
DLL mà trình liên kết đang tạo. Lib nhập này (phải được gọi là "* .dll.a" hoặc
"* .a" có thể được sử dụng để liên kết các máy khách với DLL đã tạo; hành vi này làm cho nó
có thể bỏ qua bước tạo thư viện nhập "dlltool" riêng biệt. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

--enable-auto-image-base
--enable-auto-image-base =giá trị
Tự động chọn cơ sở hình ảnh cho DLL, tùy chọn bắt đầu với cơ sở giá trị,
trừ khi một được chỉ định bằng cách sử dụng đối số "--image-base". Bằng cách sử dụng hàm băm được tạo
từ dllname để tạo cơ sở hình ảnh duy nhất cho mỗi DLL, va chạm trong bộ nhớ và
Các vị trí có thể làm trì hoãn việc thực thi chương trình được tránh. [Tùy chọn này cụ thể
tới cổng được nhắm mục tiêu i386 PE của trình liên kết]

- Disable-auto-image-base
Không tự động tạo một cơ sở hình ảnh duy nhất. Nếu không có người dùng chỉ định
cơ sở hình ảnh ("--image-base") sau đó sử dụng nền tảng mặc định. [Tùy chọn này cụ thể
tới cổng được nhắm mục tiêu i386 PE của trình liên kết]

--dll-search-prefix chuỗi
Khi liên kết động với một dll mà không có thư viện nhập, hãy tìm kiếm
" .dll "ưu tiên thành" lib .dll ". Hành vi này cho phép
dễ dàng phân biệt giữa các DLL được xây dựng cho các "subplatforms" khác nhau: native, cygwin,
uwin, pw, v.v. Ví dụ, các DLL của cygwin thường sử dụng "--dll-search-prefix = cyg".
[Tùy chọn này dành riêng cho cổng được nhắm mục tiêu i386 PE của trình liên kết]

--enable-auto-import
Thực hiện liên kết phức tạp "_symbol" với "__imp__symbol" để nhập DATA từ DLL,
và tạo các ký hiệu thu nhận cần thiết khi xây dựng các thư viện nhập với
những lần xuất DATA đó. Lưu ý: Việc sử dụng tiện ích mở rộng 'tự động nhập' sẽ khiến văn bản
phần của tệp hình ảnh được đặt ở chế độ có thể ghi. Điều này không tuân theo PE-COFF
đặc điểm kỹ thuật định dạng do Microsoft xuất bản.

Lưu ý - việc sử dụng tiện ích mở rộng 'tự động nhập' cũng sẽ khiến dữ liệu chỉ đọc
thường được đặt vào phần .rdata sẽ được đặt vào phần .data
thay thế. Điều này là để khắc phục sự cố với các khuyết điểm được mô tả
ở đây: http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

Sử dụng 'tự động nhập' thường sẽ 'chỉ hoạt động' - nhưng đôi khi bạn có thể thấy điều này
thông điệp:

Không thể tự động nhập "biến ' '. Vui lòng đọc tài liệu về ld's
"--enable-auto-import" để biết chi tiết. "

Thông báo này xảy ra khi một số biểu thức (con) truy cập vào một địa chỉ cuối cùng được cung cấp bởi
tổng của hai hằng số (bảng nhập Win32 chỉ cho phép một hằng số). Các trường hợp này
có thể xảy ra bao gồm quyền truy cập vào các trường thành viên của biến cấu trúc được nhập từ một DLL,
cũng như sử dụng một chỉ số không đổi vào một biến mảng được nhập từ một DLL. Không tí nào
biến đa từ (mảng, cấu trúc, dài dài, v.v.) có thể gây ra tình trạng lỗi này.
Tuy nhiên, bất kể kiểu dữ liệu chính xác của biến đã xuất vi phạm là gì, ld sẽ
luôn phát hiện nó, đưa ra cảnh báo và thoát.

Có một số cách để giải quyết khó khăn này, bất kể loại dữ liệu của
biến đã xuất:

Một cách là sử dụng công tắc --enable-runtime-pseudo-tái định cư. Điều này khiến nhiệm vụ của
điều chỉnh các tham chiếu trong mã khách hàng của bạn cho môi trường thời gian chạy, để phương pháp này hoạt động
chỉ khi môi trường thời gian chạy hỗ trợ tính năng này.

Giải pháp thứ hai là buộc một trong những 'hằng số' phải là một biến - nghĩa là
không xác định và không thể tối ưu hóa tại thời điểm biên dịch. Đối với mảng, có hai khả năng:
a) đặt người nhận chỉ mục (địa chỉ của mảng) thành một biến, hoặc b) tạo chỉ mục 'không đổi'
một biến số. Như vậy:

kiểu extern extern_array [];
extern_array [1] ->
{kiểu dễ bay hơi * t = extern_array; t [1]}

or

kiểu extern extern_array [];
extern_array [1] ->
{dễ bay hơi int t = 1; extern_array [t]}

Đối với cấu trúc (và hầu hết các kiểu dữ liệu nhiều từ khác), tùy chọn duy nhất là thực hiện
chính cấu trúc (hoặc biến dài dài, hoặc ...):

extern struct s extern_struct;
extern_struct.field ->
{construct struct s * t = & extern_struct; t-> trường}

or

extern dài dài extern_ll;
extern_ll ->
{long long dễ bay hơi * local_ll = & extern_ll; * local_ll}

Phương pháp thứ ba để giải quyết khó khăn này là bỏ 'tự động nhập' đối với
biểu tượng vi phạm và đánh dấu nó bằng "__declspec (dllimport)". Tuy nhiên, trên thực tế điều đó
yêu cầu sử dụng #defines thời gian biên dịch để cho biết liệu bạn có đang xây dựng một DLL hay không,
xây dựng mã khách hàng sẽ liên kết đến DLL, hoặc chỉ xây dựng / liên kết đến tĩnh
thư viện. Khi đưa ra sự lựa chọn giữa các phương pháp giải quyết vấn đề 'trực tiếp
địa chỉ với vấn đề bù đắp không đổi, bạn nên xem xét cách sử dụng thông thường trong thế giới thực:

Bản gốc:

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

Giải pháp 1:

--foo.h
extern int arr [];
--foo.c
#include "foo.h"
void main (int argc, char ** argv) {
/ * Cách giải quyết này dành cho win32 và cygwin; không "tối ưu hóa" * /
dễ bay hơi int * parr = arr;
printf ("% d \ n", parr [1]);
}

Giải pháp 2:

--foo.h
/ * Lưu ý: tự động xuất được giả định (không có __declspec (dllexport)) * /
#if (đã định nghĩa (_WIN32) || được xác định (__ CYGWIN__)) && \
! (được xác định (FOO_BUILD_DLL) || được xác định (FOO_STATIC))
#define FOO_IMPORT __declspec (dllimport)
#khác
#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]);
}

Cách thứ tư để tránh vấn đề này là mã lại thư viện của bạn để sử dụng một chức năng
giao diện chứ không phải là giao diện dữ liệu cho các biến vi phạm (ví dụ: set_foo ()
get_foo () chức năng truy cập). [Tùy chọn này dành riêng cho cổng nhắm mục tiêu i386 PE
của trình liên kết]

- vô hiệu hóa-tự động nhập
Đừng cố liên kết phức tạp "_symbol" với "__imp__symbol" cho DATA
nhập khẩu từ các DLL. [Tùy chọn này dành riêng cho cổng nhắm mục tiêu i386 PE của
người liên kết]

--enable-runtime-giả-tái định cư
Nếu mã của bạn chứa các biểu thức được mô tả trong phần --enable-auto-import, nghĩa là
Nhập DATA từ DLL với độ lệch khác XNUMX, công tắc này sẽ tạo ra một vectơ của
'các vị trí giả thời gian chạy' có thể được sử dụng bởi môi trường thời gian chạy để điều chỉnh
tham chiếu đến dữ liệu đó trong mã khách hàng của bạn. [Tùy chọn này dành riêng cho i386 PE
cổng được nhắm mục tiêu của trình liên kết]

- vô hiệu hóa-thời gian chạy-giả-tái định cư
Không tạo các vị trí giả cho các lần nhập DATA có độ lệch khác không từ các tệp DLL. [Cái này
tùy chọn cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

--enable-extra-pe-debug
Hiển thị thông tin gỡ lỗi bổ sung liên quan đến tự động nhập biểu tượng thu hồi. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

--section-alignment
Đặt căn chỉnh phần. Các phần trong bộ nhớ sẽ luôn bắt đầu tại các địa chỉ mà
là bội số của số này. Mặc định là 0x1000. [Tùy chọn này dành riêng cho
i386 PE được nhắm mục tiêu cổng của trình liên kết]

--cây rơm dự trữ
--cây rơm dự trữ,cam kết
Chỉ định số byte bộ nhớ để dự trữ (và tùy chọn cam kết) được sử dụng làm
ngăn xếp cho chương trình này. Mặc định là 2MB dành riêng, cam kết 4K. [Tùy chọn này là
cụ thể cho cổng nhắm mục tiêu i386 PE của trình liên kết]

- hệ thống phụ cái nào
- hệ thống phụ cái nào:chính
- hệ thống phụ cái nào:chính.nhỏ
Chỉ định hệ thống con mà chương trình của bạn sẽ thực thi. Các giá trị pháp lý cho
cái nào là "gốc", "cửa sổ", "bảng điều khiển", "posix" và "xbox". Bạn có thể tùy ý đặt
phiên bản hệ thống con cũng có. Giá trị số cũng được chấp nhận cho cái nào. [Tùy chọn này
dành riêng cho cổng nhắm mục tiêu i386 PE của trình liên kết]

Các tùy chọn sau đặt cờ trong trường "DllCharacteristics" của tệp PE
header: [Các tùy chọn này dành riêng cho các cổng được nhắm mục tiêu PE của trình liên kết]

--high-entropy-va
Hình ảnh tương thích với ngẫu nhiên hóa bố cục không gian địa chỉ 64-bit (ASLR).

--dynamicbase
Địa chỉ cơ sở hình ảnh có thể được di dời bằng cách sử dụng ngẫu nhiên bố cục không gian địa chỉ
(ASLR). Tính năng này đã được giới thiệu với MS Windows Vista cho các mục tiêu i386 PE.

--forceinteg
Kiểm tra tính toàn vẹn của mã được thực thi.

--nxcompat
Hình ảnh tương thích với Ngăn chặn Thực thi Dữ liệu. Tính năng này là
được giới thiệu với MS Windows XP SP2 cho các mục tiêu i386 PE.

- không cô lập
Mặc dù hình ảnh hiểu là cô lập, nhưng không cô lập hình ảnh.

- không-seh
Hình ảnh không sử dụng SEH. Không có trình xử lý SE nào có thể được gọi từ hình ảnh này.

- không ràng buộc
Không ràng buộc hình ảnh này.

--wdmdriver
Trình điều khiển sử dụng Mô hình trình điều khiển MS Windows.

--tsaware
Hình ảnh là nhận biết Máy chủ đầu cuối.

- ký kết-dấu thời gian
--no-insert-timestamp
Chèn dấu thời gian thực vào hình ảnh. Đây là hành vi mặc định vì nó khớp
mã kế thừa và nó có nghĩa là hình ảnh sẽ hoạt động với các công cụ độc quyền khác. Các
vấn đề với mặc định này là nó sẽ dẫn đến các hình ảnh hơi khác nhau
được tạo ra mỗi khi các nguồn giống nhau được liên kết. Các tùy chọn --no-insert-timestamp có thể
được sử dụng để chèn giá trị XNUMX cho dấu thời gian, điều này đảm bảo rằng các tệp nhị phân được tạo ra
từ các nguồn giống hệt nhau sẽ so sánh giống hệt nhau.

Mục tiêu uClinux C6X sử dụng định dạng nhị phân gọi là DSBT để hỗ trợ các thư viện được chia sẻ. Mỗi
thư viện dùng chung trong hệ thống cần có một chỉ mục duy nhất; tất cả các tệp thực thi sử dụng một chỉ mục của
0.

--dsbt-size kích thước
Tùy chọn này đặt số mục nhập trong DSBT của tệp thực thi hoặc được chia sẻ hiện tại
thư viện đến kích thước. Mặc định là tạo một bảng với 64 mục nhập.

--dsbt-index chỉ số
Tùy chọn này đặt chỉ mục DSBT của thư viện được chia sẻ hoặc thực thi hiện tại thành chỉ số.
Giá trị mặc định là 0, thích hợp để tạo các tệp thực thi. Nếu một chia sẻ
thư viện được tạo với chỉ mục DSBT là 0, các tài liệu "R_C6000_DSBT_INDEX" là
được sao chép vào tệp đầu ra.

Mô hình --no-merge-exidx-entry chuyển đổi vô hiệu hóa việc hợp nhất các mục nhập exidx liền kề trong
khung thông tin thư giãn.

Các trình liên kết 68HC11 và 68HC12 hỗ trợ các tùy chọn cụ thể để kiểm soát ngân hàng bộ nhớ
chuyển đổi ánh xạ và tạo mã tấm bạt lò xo.

- không có bạt lò xo
Tùy chọn này vô hiệu hóa việc tạo tấm bạt lò xo. Theo mặc định, một tấm bạt lò xo là
được tạo cho mỗi hàm xa được gọi bằng lệnh "jsr" (cái này
xảy ra khi một con trỏ đến một hàm xa được sử dụng).

--bank-window tên
Tùy chọn này cho trình liên kết biết tên của vùng bộ nhớ trong NHỚ
đặc điểm kỹ thuật mô tả cửa sổ ngân hàng bộ nhớ. Định nghĩa của vùng như vậy là
sau đó được trình liên kết sử dụng để tính toán phân trang và địa chỉ trong cửa sổ bộ nhớ.

Các tùy chọn sau được hỗ trợ để kiểm soát việc xử lý tạo GOT khi liên kết cho
68 nghìn mục tiêu.

--got =kiểu
Tùy chọn này cho trình liên kết biết nên sử dụng lược đồ tạo GOT nào. kiểu nên là một
of duy nhất, tiêu cực, nhiều or mục tiêu. Để biết thêm thông tin, hãy tham khảo mục Thông tin
cho ld.

Các tùy chọn sau được hỗ trợ để kiểm soát việc tạo lệnh microMIPS khi
liên kết cho các mục tiêu MIPS.

--insn32
--no-insn32
Các tùy chọn này kiểm soát việc lựa chọn các hướng dẫn microMIPS được sử dụng trong mã được tạo bởi
trình liên kết, chẳng hạn như trình liên kết trong PLT hoặc sơ khai liên kết lười biếng, hoặc trong thư giãn. Nếu như
--insn32 được sử dụng, khi đó trình liên kết chỉ sử dụng mã hóa lệnh 32-bit. Theo mặc định
hoặc nếu --no-insn32 được sử dụng, tất cả các mã hóa hướng dẫn được sử dụng, bao gồm cả những mã hóa 16 bit
có thể ở đâu.

MÔI TRƯỜNG


Bạn có thể thay đổi hành vi của ld với các biến môi trường "GNUTARGET",
"LDEMULATION" và "COLLECT_NO_DEMANGLE".

"GNUTARGET" xác định định dạng đối tượng tệp đầu vào nếu bạn không sử dụng -b (hoặc từ đồng nghĩa của nó
--định dạng). Giá trị của nó phải là một trong các tên BFD cho định dạng đầu vào. Nếu không có
"GNUTARGET" trong môi trường, ld sử dụng định dạng tự nhiên của mục tiêu. Nếu "GNUTARGET"
được đặt thành "mặc định" sau đó BFD cố gắng khám phá định dạng đầu vào bằng cách kiểm tra nhị phân
tập tin đầu vào; phương pháp này thường thành công, nhưng tiềm ẩn những điểm mơ hồ, vì ở đó
không có phương pháp nào đảm bảo rằng số ma thuật được sử dụng để chỉ định các định dạng tệp đối tượng là
duy nhất. Tuy nhiên, quy trình cấu hình cho BFD trên mỗi hệ thống đặt
định dạng thông thường cho hệ thống đó đầu tiên trong danh sách tìm kiếm, do đó, sự mơ hồ sẽ được giải quyết
ủng hộ quy ước.

"LDEMULATION" xác định mô phỏng mặc định nếu bạn không sử dụng -m Lựa chọn. Các
mô phỏng có thể ảnh hưởng đến các khía cạnh khác nhau của hành vi trình liên kết, đặc biệt là trình liên kết mặc định
kịch bản. Bạn có thể liệt kê các mô phỏng có sẵn với --verbose or -V tùy chọn. Nếu
-m tùy chọn không được sử dụng và biến môi trường "LDEMULATION" không được xác định,
mô phỏng mặc định phụ thuộc vào cách trình liên kết được định cấu hình.

Thông thường, trình liên kết sẽ mặc định tách các ký hiệu. Tuy nhiên, nếu
"COLLECT_NO_DEMANGLE" được đặt trong môi trường, sau đó nó sẽ được đặt mặc định là không gỡ bỏ
các ký hiệu. Biến môi trường này được trình liên kết "gcc" sử dụng theo cách tương tự
chương trình bao bọc. Giá trị mặc định có thể bị ghi đè bởi - hình tam giác--no-demangle
tùy chọn.

Sử dụng mips64-linux-gnuabi64-ld trực tuyến bằng các dịch vụ onworks.net


Ad


Ad

Các chương trình trực tuyến Linux & Windows mới nhất