InggrisPerancisSpanyol

Ad


favorit OnWorks

i686-linux-gnu-ld - Online di Cloud

Jalankan i686-linux-gnu-ld di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

Ini adalah perintah i686-linux-gnu-ld yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa stasiun kerja online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


ld - Penghubung GNU

RINGKASAN


aku [Pilihan] file objek ...

DESKRIPSI


ld menggabungkan sejumlah objek dan file arsip, memindahkan datanya
dan mengikat referensi simbol. Biasanya langkah terakhir dalam kompilasi a
program akan dijalankan ld.

ld menerima file Bahasa Perintah Linker yang ditulis dalam superset dari
Sintaks Bahasa Perintah Editor Tautan AT&T, untuk menyediakan dan
kontrol total atas proses penautan.

Halaman manual ini tidak menjelaskan bahasa perintah; lihat ld masuk
di "info" untuk detail lengkap tentang bahasa perintah dan aspek lainnya
dari penghubung GNU.

Versi ld menggunakan perpustakaan BFD tujuan umum untuk beroperasi pada
file objek. Ini memungkinkan ld untuk membaca, menggabungkan, dan menulis file objek
dalam banyak format berbeda---misalnya, COFF atau "a.out". Berbeda
format dapat dihubungkan bersama untuk menghasilkan jenis objek apa pun yang tersedia
file.

Selain fleksibilitasnya, tautan GNU lebih bermanfaat daripada yang lain
penghubung dalam memberikan informasi diagnostik. Banyak tautan yang ditinggalkan
eksekusi segera setelah menemukan kesalahan; bila memungkinkan, ld
terus mengeksekusi, memungkinkan Anda untuk mengidentifikasi kesalahan lain (atau, dalam beberapa
kasus, untuk mendapatkan file output terlepas dari kesalahan).

Penghubung GNU ld dimaksudkan untuk mencakup berbagai situasi, dan untuk
sekompatibel mungkin dengan linker lain. Akibatnya, Anda memiliki
banyak pilihan untuk mengontrol perilakunya.

PILIHAN


Linker mendukung sejumlah besar opsi baris perintah, tetapi sebenarnya
praktek beberapa dari mereka digunakan dalam konteks tertentu. Contohnya,
sering menggunakan ld adalah untuk menautkan file objek Unix standar pada a
standar, sistem Unix yang didukung. Pada sistem seperti itu, untuk menautkan file
"halo.o":

saya bersedia /lib/crt0.o halo.o -lc

Ini menceritakan ld untuk menghasilkan file bernama keluaran sebagai hasil dari menghubungkan
file "/lib/crt0.o" dengan "hello.o" dan perpustakaan "libc.a", yang
akan datang dari direktori pencarian standar. (Lihat pembahasan
itu -l pilihan di bawah.)

Beberapa opsi baris perintah untuk ld dapat ditentukan pada setiap titik di
baris perintah. Namun, opsi yang merujuk ke file, seperti -l or
-T, menyebabkan file dibaca pada titik di mana opsi muncul
di baris perintah, relatif terhadap file objek dan file lainnya
pilihan. Mengulangi opsi non-file dengan argumen yang berbeda akan
tidak memiliki efek lebih lanjut, atau mengesampingkan kejadian sebelumnya (yang
lebih jauh ke kiri pada baris perintah) dari opsi itu. Pilihan yang
mungkin bermakna ditentukan lebih dari satu kali dicatat dalam
deskripsi di bawah ini.

Argumen non-opsi adalah file objek atau arsip yang akan
dihubungkan bersama. Mereka mungkin mengikuti, mendahului, atau bercampur dengan
opsi baris perintah, kecuali bahwa argumen file objek mungkin tidak
ditempatkan di antara opsi dan argumennya.

Biasanya linker dipanggil dengan setidaknya satu file objek, tetapi Anda
dapat menentukan bentuk lain dari file input biner menggunakan -l, -R, Dan
bahasa perintah skrip. Jika tidak file input biner sama sekali adalah
ditentukan, linker tidak menghasilkan output apa pun, dan mengeluarkan
pesan Tidak memasukkan arsip.

Jika penaut tidak dapat mengenali format file objek, itu akan
berasumsi bahwa itu adalah skrip tautan. Sebuah skrip ditentukan dengan cara ini
menambah skrip tautan utama yang digunakan untuk tautan (baik default
skrip tautan atau yang ditentukan dengan menggunakan -T). Fitur ini mengizinkan
linker untuk menautkan ke file yang tampak seperti objek atau
arsip, tetapi sebenarnya hanya mendefinisikan beberapa nilai simbol, atau kegunaan
"INPUT" atau "GROUP" untuk memuat objek lain. Menentukan skrip dalam hal ini
cara hanya menambah skrip tautan utama, dengan perintah tambahan
ditempatkan setelah naskah utama; menggunakan -T opsi untuk mengganti default
skrip tautan sepenuhnya, tetapi perhatikan efek dari perintah "INSERT".

Untuk opsi yang namanya satu huruf, argumen opsi harus
ikuti huruf opsi tanpa mengintervensi spasi, atau menjadi
diberikan sebagai argumen terpisah segera setelah opsi itu
membutuhkan mereka.

Untuk opsi yang namanya banyak huruf, satu atau dua tanda hubung
dapat mendahului nama opsi; Misalnya, -jejak-simbol dan
--simbol-jejak setara. Catatan --- ada satu pengecualian untuk ini
aturan. Beberapa opsi huruf yang dimulai dengan huruf kecil 'o' can
hanya didahului oleh dua tanda hubung. Ini untuk mengurangi kebingungan dengan
-o pilihan. Jadi misalnya -ajaib atur nama file output menjadi sihir
sedangkan --magic menetapkan bendera NMAGIC pada output.

Argumen untuk opsi multi-huruf harus dipisahkan dari
nama opsi dengan tanda sama dengan, atau diberikan sebagai argumen terpisah
segera mengikuti opsi yang mengharuskannya. Sebagai contoh,
--simbol-jejak foo dan --trace-simbol=foo setara. Unik
singkatan dari nama opsi beberapa huruf diterima.

Catatan --- jika linker dipanggil secara tidak langsung, melalui driver compiler
(misalnya gcc) maka semua opsi baris perintah tautan harus diawali
by -Wl, (atau apa pun yang sesuai untuk driver kompiler tertentu)
seperti ini:

gcc -Wl,--start-group foo.o bar.o -Wl,--end-group

Ini penting, karena jika tidak, program driver kompiler dapat
lepaskan opsi penaut secara diam-diam, menghasilkan tautan yang buruk. Kebingungan
mungkin juga muncul ketika melewati opsi yang membutuhkan nilai melalui a
driver, karena penggunaan spasi antara opsi dan argumen bertindak sebagai
pemisah, dan menyebabkan pengemudi hanya meneruskan opsi ke tautan
dan argumen ke compiler. Dalam hal ini, paling sederhana untuk digunakan
bentuk gabungan dari opsi satu dan banyak huruf, seperti:

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

Berikut adalah tabel switch baris perintah umum yang diterima oleh
penghubung GNU:

@fillet
Baca opsi baris perintah dari fillet. Opsi yang dibaca dimasukkan
menggantikan yang asli @fillet pilihan. Jika fillet tidak ada, atau
tidak dapat dibaca, maka opsi akan diperlakukan secara harfiah, dan tidak
dihapus.

Opsi dalam fillet dipisahkan oleh spasi. Sebuah spasi putih
karakter dapat dimasukkan dalam pilihan dengan mengelilingi keseluruhan
pilihan dalam tanda kutip tunggal atau ganda. Karakter apa pun (termasuk
garis miring terbalik) dapat disertakan dengan mengawali karakter menjadi
disertakan dengan garis miring terbalik. NS fillet mungkin mengandung tambahan
@fillet pilihan; setiap opsi tersebut akan diproses secara rekursif.

-a kata kunci
Opsi ini didukung untuk kompatibilitas HP/UX. NS kata kunci
argumen harus menjadi salah satu string arsip, berbagi, atau kegagalan.
-arsip secara fungsional setara dengan -Bstatis, dan dua lainnya
kata kunci secara fungsional setara dengan -Bdinamis. Opsi ini mungkin
digunakan beberapa kali.

--audit AUDITLIB
Menambahkan AUDITLIB ke entri "DT_AUDIT" dari bagian dinamis.
AUDITLIB tidak diperiksa keberadaannya, juga tidak akan menggunakan
DT_SONAME ditentukan di perpustakaan. Jika ditentukan beberapa kali
"DT_AUDIT" akan berisi daftar antarmuka audit yang dipisahkan titik dua
menggunakan. Jika penaut menemukan objek dengan entri audit saat
mencari perpustakaan bersama, itu akan menambahkan yang sesuai
Entri "DT_DEPAUDIT" dalam file keluaran. Pilihan ini hanya
bermakna pada platform ELF yang mendukung antarmuka rtld-audit.

-A arsitektur
--arsitektur=arsitektur
Dalam rilis saat ini dari ld, opsi ini hanya berguna untuk
Keluarga arsitektur Intel 960. Karena ld konfigurasi,
arsitektur argumen mengidentifikasi arsitektur tertentu di
960 keluarga, memungkinkan beberapa pengamanan dan memodifikasi arsip-
jalur pencarian perpustakaan.

Rilis mendatang dari ld dapat mendukung fungsi serupa untuk lainnya
keluarga arsitektur.

-b Masukkan format
--format=Masukkan format
ld dapat dikonfigurasi untuk mendukung lebih dari satu jenis file objek.
Jika Anda ld dikonfigurasi dengan cara ini, Anda dapat menggunakan -b pilihan untuk
tentukan format biner untuk file objek input yang mengikuti ini
pilihan pada baris perintah. Bahkan ketika ld dikonfigurasi untuk mendukung
format objek alternatif, Anda biasanya tidak perlu menentukan ini,
as ld harus dikonfigurasi untuk diharapkan sebagai format input default
format yang paling biasa pada setiap mesin. Masukkan format adalah string teks,
nama format tertentu yang didukung oleh perpustakaan BFD.
(Anda dapat membuat daftar format biner yang tersedia dengan keberatan -i.)

Anda mungkin ingin menggunakan opsi ini jika Anda menautkan file dengan
format biner yang tidak biasa. Anda juga bisa menggunakan -b untuk beralih format
secara eksplisit (saat menautkan file objek dengan format berbeda), dengan
termasuk -b Masukkan format sebelum setiap grup file objek dalam a
format tertentu.

Format default diambil dari variabel lingkungan
"GNUTARGET".

Anda juga dapat menentukan format input dari skrip, menggunakan
perintah "TARGET";

-c File perintah MRI
--mri-skrip=File perintah MRI
Untuk kompatibilitas dengan linker yang diproduksi oleh MRI, ld menerima naskah
file yang ditulis dalam bahasa perintah alternatif yang dibatasi,
dijelaskan di bagian File Skrip Kompatibel MRI di GNU ld
dokumentasi. Perkenalkan file skrip MRI dengan opsi -c; menggunakan
itu -T opsi untuk menjalankan skrip tautan yang ditulis untuk tujuan umum
ld bahasa skrip. Jika File MRI-cmd tidak ada, ld mencari
itu di direktori yang ditentukan oleh any -L Pilihan.

-d
-dc
-dp Ketiga opsi ini setara; beberapa bentuk didukung
untuk kompatibilitas dengan linker lainnya. Mereka menetapkan ruang untuk umum
simbol bahkan jika file output yang dapat dipindahkan ditentukan (dengan -r).
Perintah skrip "FORCE_COMMON_ALLOCATION" memiliki efek yang sama.

--deaudit AUDITLIB
-P AUDITLIB
Menambahkan AUDITLIB ke entri "DT_DEPAUDIT" dari bagian dinamis.
AUDITLIB tidak diperiksa keberadaannya, juga tidak akan menggunakan
DT_SONAME ditentukan di perpustakaan. Jika ditentukan beberapa kali
"DT_DEPAUDIT" akan berisi daftar audit yang dipisahkan titik dua
antarmuka untuk digunakan. Opsi ini hanya bermakna pada platform ELF
mendukung antarmuka rtld-audit. Opsi -P disediakan untuk
Kompatibilitas Solaris.

-e masuk
--masuk=masuk
penggunaan masuk sebagai simbol eksplisit untuk memulai eksekusi Anda
program, bukan titik masuk default. Jika tidak ada
simbol bernama masuk, penaut akan mencoba menguraikan masuk sebagai angka,
dan gunakan itu sebagai alamat entri (nomornya akan ditafsirkan
di basis 10; Anda dapat menggunakan terkemuka 0x untuk basis 16, atau leading 0
untuk basis 8).

--kecualikan-libs lib,lib...
Menentukan daftar perpustakaan arsip dari mana simbol tidak boleh
secara otomatis diekspor. Nama perpustakaan dapat dibatasi oleh
koma atau titik dua. Menentukan "--exclude-libs ALL" tidak termasuk simbol
di semua perpustakaan arsip dari ekspor otomatis. Pilihan ini adalah
hanya tersedia untuk port penaut i386 PE yang ditargetkan dan untuk
Port target ELF. Untuk i386 PE, simbol secara eksplisit tercantum dalam a
File .def masih diekspor, terlepas dari opsi ini. Untuk ELF
port yang ditargetkan, simbol yang terpengaruh oleh opsi ini akan diperlakukan sebagai
tersembunyi.

--exclude-modul-untuk-implib modul,modul...
Menentukan daftar file objek atau anggota arsip, dari mana
simbol tidak boleh diekspor secara otomatis, tetapi yang seharusnya
disalin grosir ke perpustakaan impor yang dihasilkan selama
tautan. Nama modul dapat dipisahkan dengan koma atau titik dua, dan
harus sama persis dengan nama file yang digunakan oleh ld untuk membuka file; untuk
anggota arsip, ini hanyalah nama anggota, tetapi untuk objek
file nama yang tercantum harus menyertakan dan cocok dengan jalur apa pun
digunakan untuk menentukan file input pada baris perintah linker. Ini
opsi hanya tersedia untuk port target i386 PE dari
penghubung Simbol yang secara eksplisit tercantum dalam file .def masih
diekspor, terlepas dari opsi ini.

-E
--ekspor-dinamis
--tidak-ekspor-dinamis
Saat membuat executable yang terhubung secara dinamis, menggunakan -E Option
atau itu --ekspor-dinamis opsi menyebabkan tautan menambahkan semua simbol
ke tabel simbol dinamis. Tabel simbol dinamis adalah himpunannya
simbol yang terlihat dari objek dinamis pada saat run time.

Jika Anda tidak menggunakan salah satu dari opsi ini (atau menggunakan
--tidak-ekspor-dinamis opsi untuk mengembalikan perilaku default), the
tabel simbol dinamis biasanya hanya berisi simbol-simbol yang
direferensikan oleh beberapa objek dinamis yang disebutkan dalam tautan.

Jika Anda menggunakan "dlopen" untuk memuat objek dinamis yang perlu dirujuk
kembali ke simbol yang ditentukan oleh program, bukan yang lain
objek dinamis, maka Anda mungkin perlu menggunakan opsi ini ketika
menghubungkan program itu sendiri.

Anda juga dapat menggunakan daftar dinamis untuk mengontrol simbol apa yang seharusnya
ditambahkan ke tabel simbol dinamis jika format output mendukungnya.
Lihat deskripsi dari --dinamis-daftar.

Perhatikan bahwa opsi ini khusus untuk port yang ditargetkan ELF. pe
target mendukung fungsi serupa untuk mengekspor semua simbol dari DLL
atau EXE; lihat deskripsi --ekspor-semua-simbol di bawah.

-EB Tautkan objek big-endian. Ini mempengaruhi format output default.

-ITU Tautkan objek little-endian. Ini mempengaruhi output default
Format.

-f nama
--bantuan=nama
Saat membuat objek bersama ELF, atur DT_AUXILIARY internal internal
bidang ke nama yang ditentukan. Ini memberi tahu penaut dinamis bahwa
tabel simbol dari objek bersama harus digunakan sebagai
filter tambahan pada tabel simbol objek bersama nama.

Jika nanti Anda menautkan program dengan objek filter ini, maka, ketika
Anda menjalankan program, tautan dinamis akan melihat DT_AUXILIARY
bidang. Jika penaut dinamis menyelesaikan simbol apa pun dari filter
objek, pertama-tama akan memeriksa apakah ada definisi di
objek bersama nama. Jika ada, itu akan digunakan sebagai pengganti
definisi dalam objek filter. Objek yang dibagikan nama perlu
tidak ada. Jadi objek yang dibagikan nama dapat digunakan untuk memberikan
implementasi alternatif dari fungsi-fungsi tertentu, mungkin untuk
debugging atau untuk kinerja khusus mesin.

Opsi ini dapat ditentukan lebih dari sekali. DT_AUXILIARY
entri akan dibuat sesuai urutan kemunculannya di
garis komando.

-F nama
--filter=nama
Saat membuat objek bersama ELF, atur DT_FILTER internal
bidang ke nama yang ditentukan. Ini memberi tahu penaut dinamis bahwa
tabel simbol dari objek bersama yang sedang dibuat harus
digunakan sebagai filter pada tabel simbol dari objek yang dibagikan nama.

Jika nanti Anda menautkan program dengan objek filter ini, maka, ketika
Anda menjalankan program, linker dinamis akan melihat DT_FILTER
bidang. Penaut dinamis akan menyelesaikan simbol sesuai dengan
tabel simbol objek filter seperti biasa, tetapi sebenarnya akan
tautan ke definisi yang ditemukan di objek bersama nama. Demikianlah
objek filter dapat digunakan untuk memilih subset dari simbol
disediakan oleh objek nama.

Beberapa tautan lama menggunakan -F opsi di seluruh kompilasi
rantai alat untuk menentukan format file objek untuk input dan
file objek keluaran. Penghubung GNU menggunakan mekanisme lain untuk ini
tujuan: the -b, --format, --oformat pilihan, perintah "TARGET"
dalam skrip tautan, dan variabel lingkungan "GNUTARGET". NS
Penaut GNU akan mengabaikan -F pilihan saat tidak membuat ELF
objek bersama.

-fini=nama
Saat membuat objek yang dapat dieksekusi atau dibagikan ELF, panggil NAME ketika
objek yang dapat dieksekusi atau dibagikan diturunkan, dengan mengatur DT_FINI ke
alamat fungsi. Secara default, linker menggunakan "_fini"
sebagai fungsi untuk memanggil.

-g Diabaikan. Disediakan untuk kompatibilitas dengan alat lain.

-G nilai
--ukuran gps=nilai
Atur ukuran maksimum objek yang akan dioptimalkan menggunakan GP
mendaftar ke ukuran. Ini hanya berarti untuk format file objek
seperti MIPS ELF yang mendukung penempatan benda besar dan kecil ke dalam
bagian yang berbeda. Ini diabaikan untuk format file objek lainnya.

-h nama
-namakamu=nama
Saat membuat objek bersama ELF, setel DT_SONAME internal
bidang ke nama yang ditentukan. Ketika executable ditautkan dengan a
objek bersama yang memiliki bidang DT_SONAME, lalu ketika dieksekusi
dijalankan, tautan dinamis akan mencoba memuat objek yang dibagikan
ditentukan oleh bidang DT_SONAME daripada menggunakan file
nama yang diberikan untuk linker.

-i Lakukan tautan tambahan (sama seperti opsi -r).

-init=nama
Saat membuat objek yang dapat dieksekusi atau dibagikan ELF, panggil NAME ketika
objek yang dapat dieksekusi atau dibagikan dimuat, dengan mengatur DT_INIT ke
alamat fungsi. Secara default, penaut menggunakan "_init"
sebagai fungsi untuk memanggil.

-l spesifikasi nama
--perpustakaan=spesifikasi nama
Tambahkan arsip atau file objek yang ditentukan oleh spesifikasi nama ke daftar
file untuk ditautkan. Opsi ini dapat digunakan beberapa kali. Jika
spesifikasi nama berbentuk :nama file, ld akan mencari jalur perpustakaan
untuk file bernama nama file, jika tidak maka akan mencari perpustakaan
jalur untuk file bernama libnamespec.a.

Pada sistem yang mendukung perpustakaan bersama, ld mungkin juga mencari
file selain libnamespec.a. Khususnya, pada ELF dan SunOS
sistem, ld akan mencari direktori untuk perpustakaan yang disebut
libnamespec.so sebelum mencari yang disebut libnamespec.a. (Oleh
konvensi, ekstensi ".so" menunjukkan perpustakaan bersama.) Catatan
bahwa perilaku ini tidak berlaku untuk :nama file, yang selalu
menentukan file yang disebut nama file.

Linker akan mencari arsip hanya sekali, di lokasi di mana
itu ditentukan pada baris perintah. Jika arsip mendefinisikan a
simbol yang tidak terdefinisi dalam beberapa objek yang muncul sebelum
arsipkan di baris perintah, tautan akan menyertakan
file yang sesuai dari arsip. Namun, simbol yang tidak ditentukan
di objek yang muncul nanti di baris perintah tidak akan menyebabkan
linker untuk mencari arsip lagi.

Lihat -( opsi cara memaksa tautan untuk mencari arsip
beberapa kali.

Anda dapat membuat daftar arsip yang sama beberapa kali di baris perintah.

Jenis pencarian arsip ini adalah standar untuk tautan Unix.
Namun, jika Anda menggunakan ld di AIX, perhatikan bahwa ini berbeda dari
perilaku penghubung AIX.

-L caridir
--jalur-perpustakaan=caridir
Tambahkan jalur caridir ke daftar jalur yang ld akan mencari
perpustakaan arsip dan ld skrip kontrol. Anda dapat menggunakan opsi ini
berapa kali pun. Direktori dicari dalam urutan
yang ditentukan pada baris perintah. Direktori
ditentukan pada baris perintah dicari sebelum default
direktori. Semua -L opsi berlaku untuk semua -l pilihan, terlepas dari
urutan pilihan yang muncul. -L pilihan tidak mempengaruhi
bagaimana ld mencari skrip tautan kecuali -T opsi ditentukan.

If caridir dimulai dengan "=", maka "=" akan diganti dengan
akar sys awalan, dikendalikan oleh --sysroot pilihan, atau ditentukan
ketika penaut dikonfigurasi.

Kumpulan jalur default yang dicari (tanpa ditentukan dengan -L)
tergantung pada mode emulasi mana ld sedang digunakan, dan dalam beberapa kasus juga
tentang bagaimana itu dikonfigurasi.

Jalur juga dapat ditentukan dalam skrip tautan dengan
Perintah "SEARCH_DIR". Direktori yang ditentukan dengan cara ini dicari
pada titik di mana skrip tautan muncul di perintah
line.

-m persaingan
Meniru persaingan penghubung Anda dapat membuat daftar yang tersedia
emulasi dengan --bertele-tele or -V Pilihan.

Jika -m opsi tidak digunakan, emulasi diambil dari
Variabel lingkungan "LDEMULATION", jika itu didefinisikan.

Jika tidak, emulasi default tergantung pada bagaimana tautannya
dikonfigurasi

-M
--cetak-peta
Cetak peta tautan ke keluaran standar. Peta tautan menyediakan
informasi tentang tautan, termasuk yang berikut:

· Dimana file objek dipetakan ke dalam memori.

· Bagaimana simbol umum dialokasikan.

· Semua anggota arsip termasuk dalam tautan, dengan menyebutkan
simbol yang menyebabkan anggota arsip dibawa masuk.

· Nilai yang ditetapkan untuk simbol.

Catatan - simbol yang nilainya dihitung dengan ekspresi yang
melibatkan referensi ke nilai sebelumnya dari simbol yang sama mungkin
tidak memiliki hasil yang benar yang ditampilkan di peta tautan. Ini adalah
karena penaut membuang hasil antara dan hanya
mempertahankan nilai akhir dari sebuah ekspresi. Di bawah seperti itu
keadaan linker akan menampilkan nilai akhir terlampir
oleh tanda kurung siku. Jadi misalnya skrip tautan
mengandung:

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

akan menghasilkan output berikut di peta tautan jika -M
opsi yang digunakan:

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

Lihat Ekspresi untuk informasi lebih lanjut tentang ekspresi di
skrip penghubung.

-n
--najaib
Matikan penyelarasan halaman bagian, dan nonaktifkan tautan ke
perpustakaan bersama. Jika format output mendukung sihir gaya Unix
angka, tandai output sebagai "NMAGIC".

-N
--magic
Atur bagian teks dan data agar dapat dibaca dan ditulis. Juga,
jangan ratakan halaman segmen data, dan nonaktifkan penautan terhadap
perpustakaan bersama. Jika format output mendukung sihir gaya Unix
angka, tandai output sebagai "OMAGIC". Catatan: Meskipun dapat ditulis
bagian teks diperbolehkan untuk target PE-COFF, itu tidak sesuai dengan
spesifikasi format yang diterbitkan oleh Microsoft.

--tidak-ajaib
Opsi ini meniadakan sebagian besar efek dari -N pilihan. Ini mengatur
bagian teks menjadi hanya-baca, dan memaksa segmen data menjadi
halaman-aligned. Catatan - opsi ini tidak mengaktifkan tautan ke
perpustakaan bersama. Menggunakan -Bdinamis untuk ini.

-o keluaran
--keluaran=keluaran
penggunaan keluaran sebagai nama untuk program yang diproduksi oleh ld; jika ini
opsi tidak ditentukan, namanya keluar digunakan secara default. NS
script perintah "OUTPUT" juga dapat menentukan nama file output.

-O tingkat
If tingkat adalah nilai numerik yang lebih besar dari nol ld mengoptimalkan
keluaran. Ini mungkin memakan waktu lebih lama secara signifikan dan karenanya
mungkin seharusnya hanya diaktifkan untuk biner terakhir. Pada
saat ini opsi ini hanya memengaruhi pembuatan perpustakaan bersama ELF.
Rilis penaut di masa mendatang dapat lebih memanfaatkan opsi ini.
Juga saat ini tidak ada perbedaan dalam perilaku penaut untuk
nilai bukan nol yang berbeda dari opsi ini. Sekali lagi ini mungkin berubah
dengan rilis mendatang.

--push-status
Grafik --push-status memungkinkan untuk mempertahankan status bendera saat ini
yang mengatur penanganan file input sehingga semuanya bisa
dipulihkan dengan satu yang sesuai --pop-negara .

Opsi yang dicakup adalah: -Bdinamis, -Bstatis, -dn, -dy,
-panggilan_berbagi, -tidak_dibagikan, -statis, -N, -n, --seluruh-arsip,
--tidak-seluruh-arsip, -r, -Ur, --salin-dt-entri yang diperlukan,
--tidak ada-salinan-dt-entri yang diperlukan, --sesuai kebutuhan, --tidak sesuai kebutuhan, dan -a.

Salah satu target untuk opsi ini adalah spesifikasi untuk pkg-config. Ketika
digunakan dengan --lib pilihan semua perpustakaan yang mungkin diperlukan adalah
terdaftar dan kemudian mungkin terkait dengan sepanjang waktu. Lebih baik untuk
mengembalikan sesuatu sebagai berikut:

-Wl,--push-state,--sesuai kebutuhan -libone -libtwo -Wl,--pop-state

Membatalkan efek --push-state, mengembalikan nilai sebelumnya dari
flag yang mengatur penanganan file input.

-q
--memancarkan-relokasi
Biarkan bagian dan konten relokasi dalam executable yang sepenuhnya terhubung.
Alat analisis dan pengoptimalan tautan pos mungkin memerlukan informasi ini
untuk melakukan modifikasi yang benar dari executable. Ini
menghasilkan executable yang lebih besar.

Opsi ini saat ini hanya didukung pada platform ELF.

--gaya-dinamis
Paksa file output untuk memiliki bagian dinamis. Pilihan ini adalah
khusus untuk target VxWorks.

-r
--dapat dipindahkan
Hasilkan keluaran yang dapat dipindahkan --- yaitu, hasilkan file keluaran yang
pada gilirannya dapat berfungsi sebagai masukan untuk ld. Ini sering disebut sebagian
menghubungkan. Sebagai efek samping, di lingkungan yang mendukung standar
Angka ajaib Unix, opsi ini juga mengatur keajaiban file output
nomor ke "OMAGIC". Jika opsi ini tidak ditentukan, mutlak
file diproduksi. Saat menautkan program C++, opsi ini akan tidak
menyelesaikan referensi ke konstruktor; untuk melakukan itu, gunakan -Ur.

Ketika file input tidak memiliki format yang sama dengan output
file, penautan sebagian hanya didukung jika file input itu tidak
mengandung relokasi. Format output yang berbeda dapat memiliki lebih lanjut
pembatasan; misalnya beberapa format berbasis "a.out" tidak mendukung
sebagian menghubungkan dengan file input dalam format lain sama sekali.

Opsi ini melakukan hal yang sama seperti -i.

-R nama file
--hanya-simbol=nama file
Baca nama simbol dan alamatnya dari nama file, tapi jangan
memindahkannya atau memasukkannya ke dalam output. Ini memungkinkan keluaran Anda
file untuk merujuk secara simbolis ke lokasi absolut dari memori yang ditentukan
di program lain. Anda dapat menggunakan opsi ini lebih dari sekali.

Untuk kompatibilitas dengan linker ELF lainnya, jika -R pilihannya adalah
diikuti dengan nama direktori, bukan nama file, itu adalah
diperlakukan sebagai -rjalan .

-s
--strip-semua
Hilangkan semua informasi simbol dari file output.

-S
--strip-debug
Hilangkan informasi simbol debugger (tetapi tidak semua simbol) dari
berkas keluaran.

-t
--jejak
Cetak nama file input sebagai ld memproses mereka.

-T file skrip
--skrip=file skrip
penggunaan file skrip sebagai skrip tautan. Skrip ini menggantikan ld's
skrip tautan default (daripada menambahkannya), jadi file perintah
harus menentukan semua yang diperlukan untuk menggambarkan file output.
If file skrip tidak ada di direktori saat ini, "ld" terlihat
untuk itu di direktori yang ditentukan oleh sebelumnya -L Pilihan.
kelipatan -T pilihan menumpuk.

-dT file skrip
--skrip-default=file skrip
penggunaan file skrip sebagai skrip tautan default.

Opsi ini mirip dengan --naskah pilihan kecuali itu
pemrosesan skrip ditunda hingga setelah sisa
baris perintah telah diproses. Ini memungkinkan opsi ditempatkan setelah
itu --skrip-default opsi pada baris perintah untuk memengaruhi
perilaku skrip tautan, yang dapat menjadi penting ketika
baris perintah linker tidak dapat dikontrol langsung oleh pengguna. (misalnya
karena baris perintah sedang dibangun oleh alat lain, seperti
as gcc).

-u simbol
--tidak terdefinisi=simbol
kekuatan simbol untuk dimasukkan dalam file output sebagai undefined
simbol. Melakukan hal ini dapat, misalnya, memicu penautan tambahan
modul dari perpustakaan standar. -u dapat diulang dengan yang berbeda
argumen opsi untuk memasukkan simbol tambahan yang tidak ditentukan. Ini
opsi ini setara dengan perintah skrip tautan "EXTERN".

Jika opsi ini digunakan untuk memaksa modul tambahan menjadi
ditarik ke tautan, dan jika itu adalah kesalahan simbol untuk
tetap tidak terdefinisi, maka opsi --require-didefinisikan seharusnya digunakan
sebagai gantinya.

--memerlukan-ditentukan=simbol
Mengharuskan itu simbol didefinisikan dalam file keluaran. Pilihan ini adalah
sama dengan pilihan --tidak terdefinisi kecuali jika simbol tak terdefinisi
di file output maka linker akan mengeluarkan kesalahan dan keluar.
Efek yang sama dapat dicapai dalam skrip tautan dengan menggunakan
"EXTERN", "ASSERT" dan "DEFINED" bersama-sama. Opsi ini dapat digunakan
beberapa kali untuk memerlukan simbol tambahan.

-Ur Untuk apa pun selain program C++, opsi ini setara dengan
-r: menghasilkan keluaran yang dapat dipindahkan---yaitu, berkas keluaran yang dapat
pada gilirannya berfungsi sebagai masukan untuk ld. Saat menautkan program C++, -Ur tidak
menyelesaikan referensi ke konstruktor, tidak seperti -r. Ini tidak bekerja untuk
menggunakan -Ur pada file yang terhubung sendiri dengan -Ur; sekali
tabel konstruktor telah dibuat, tidak dapat ditambahkan. Menggunakan -Ur
hanya untuk tautan parsial terakhir, dan -r untuk yang lain.

--penanganan anak yatim=MODE
Kontrol bagaimana bagian yatim ditangani. Bagian anak yatim adalah satu
tidak disebutkan secara spesifik dalam skrip tautan.

MODE dapat memiliki salah satu dari nilai berikut:

"tempat"
Bagian anak yatim ditempatkan ke bagian keluaran yang sesuai
mengikuti strategi yang dijelaskan dalam Anak yatim bagian. itu
Option --unik juga mempengaruhi bagaimana bagian ditempatkan.

"membuang"
Semua bagian anak yatim dibuang, dengan menempatkannya di
/MEMBUANG/ bagian.

"memperingatkan"
Penaut akan menempatkan bagian yatim piatu seperti untuk "tempat" dan
juga mengeluarkan peringatan.

"kesalahan"
Penaut akan keluar dengan kesalahan jika ada bagian yatim piatu yang
ditemukan.

default jika --penanganan yatim piatu tidak diberikan adalah "tempat".

--unik[=BAGIAN]
Membuat bagian output terpisah untuk setiap pencocokan bagian input
BAGIAN, atau jika wildcard opsional BAGIAN argumen hilang,
untuk setiap bagian input anak yatim. Bagian yatim piatu adalah salah satunya
disebutkan secara khusus dalam skrip tautan. Anda dapat menggunakan opsi ini
beberapa kali di baris perintah; Ini mencegah penggabungan normal
bagian input dengan nama yang sama, mengesampingkan bagian output
tugas dalam skrip tautan.

-v
--Versi: kapan
-V Tampilkan nomor versi untuk ld. itu -V opsi juga mencantumkan
emulasi yang didukung.

-x
--buang-semua
Hapus semua simbol lokal.

-X
--buang-lokal
Hapus semua simbol lokal sementara. (Simbol ini dimulai dengan
awalan label lokal khusus sistem, biasanya .L untuk sistem ELF
or L untuk sistem a.out tradisional.)

-y simbol
--simbol-jejak=simbol
Cetak nama setiap file tertaut di mana simbol muncul. Ini
pilihan dapat diberikan beberapa kali. Pada banyak sistem itu adalah
diperlukan untuk menambahkan garis bawah.

Opsi ini berguna bila Anda memiliki simbol yang tidak ditentukan di
link tapi tidak tahu dari mana referensi itu berasal.

-Y path
Add path ke jalur pencarian pustaka default. Opsi ini ada
untuk kompatibilitas Solaris.

-z kata kunci
Kata kunci yang dikenali adalah:

combreloc
Menggabungkan beberapa bagian relokasi dan mengurutkannya untuk membuat dinamis
caching pencarian simbol mungkin.

def
Melarang simbol yang tidak ditentukan dalam file objek. Simbol yang tidak ditentukan
di perpustakaan bersama masih diperbolehkan.

tumpukan eksek
Menandai objek sebagai membutuhkan tumpukan yang dapat dieksekusi.

global
Opsi ini hanya bermakna saat membangun objek bersama.
Itu membuat simbol yang ditentukan oleh objek bersama ini tersedia
untuk resolusi simbol perpustakaan yang dimuat selanjutnya.

initpertama
Opsi ini hanya bermakna saat membangun objek bersama.
Ini menandai objek sehingga inisialisasi runtime akan
terjadi sebelum inisialisasi runtime dari objek lain
dibawa ke dalam proses pada saat yang sama. Demikian pula
finalisasi runtime objek akan terjadi setelah runtime
finalisasi objek lainnya.

menempatkan
Menandai objek yang diletakkan oleh tabel simbolnya sebelum semua
simbol tetapi yang dapat dieksekusi utama.

malas
Saat membuat perpustakaan yang dapat dieksekusi atau dibagikan, tandai ke
beri tahu tautan dinamis untuk menunda resolusi panggilan fungsi ke
titik ketika fungsi dipanggil (pengikatan malas), bukan
daripada pada waktu muat. Pengikatan malas adalah default.

memuatfltr
Menandai objek yang filternya segera diproses
waktu berjalan.

muldef
Memungkinkan beberapa definisi.

nocombreloc.dll
Menonaktifkan penggabungan beberapa bagian relokasi.

nocopyreloc.dll
Nonaktifkan variabel .dynbss yang dihasilkan penaut yang digunakan sebagai pengganti
variabel yang didefinisikan dalam perpustakaan bersama. Dapat menghasilkan dinamis
relokasi teks.

tidak default
Menandai objek yang mencari dependensi ini
objek akan mengabaikan jalur pencarian pustaka default apa pun.

simpul
Menandai objek tidak boleh dibongkar saat runtime.

simpul
Menandai objek tidak tersedia untuk "dlopen".

nodump
Menandai objek tidak dapat dibuang oleh "dldump".

noexecstack
Menandai objek sebagai tidak memerlukan tumpukan yang dapat dieksekusi.

teks
Perlakukan DT_TEXTREL di objek bersama sebagai kesalahan.

catatan
Jangan perlakukan DT_TEXTREL di objek bersama sebagai kesalahan.

teks off
Jangan perlakukan DT_TEXTREL di objek bersama sebagai kesalahan.

norelro
Jangan membuat tajuk segmen "PT_GNU_RELRO" ELF di
obyek.

sekarang Saat membuat perpustakaan yang dapat dieksekusi atau dibagikan, tandai ke
beri tahu tautan dinamis untuk menyelesaikan semua simbol saat program
dimulai, atau ketika perpustakaan bersama ditautkan untuk menggunakan
dlopen, alih-alih menunda resolusi panggilan fungsi ke
titik ketika fungsi pertama kali dipanggil.

asal
Menandai objek mungkin berisi $ORIGIN.

relro
Buat header segmen "PT_GNU_RELRO" ELF di objek.

ukuran halaman maks=nilai
Atur ukuran halaman maksimum emulasi ke nilai.

ukuran halaman umum=nilai
Atur ukuran halaman umum emulasi ke nilai.

ukuran tumpukan =nilai
Tentukan ukuran tumpukan untuk dalam segmen "PT_GNU_STACK" ELF.
Menentukan nol akan menimpa semua ukuran default bukan nol
Pembuatan segmen "PT_GNU_STACK".

bndplt
Selalu buat awalan BND di entri PLT. Didukung untuk
Linux/x86_64.

data yang dilindungi-noextern
Jangan perlakukan simbol data yang dilindungi sebagai eksternal saat membangun
perpustakaan bersama. Opsi ini menggantikan default backend linker.
Ini dapat digunakan untuk mengatasi relokasi yang salah terhadap
simbol data yang dilindungi yang dihasilkan oleh kompiler. Pembaruan aktif
simbol data yang dilindungi oleh modul lain tidak terlihat oleh
perpustakaan bersama yang dihasilkan. Didukung untuk i386 dan x86-64.

panggilan-nop=awalan-addr
call-nop=awalan-nop
call-nop=akhiran-nop
panggilan-nop=awalan-byte
panggilan-nop=akhiran-byte
Tentukan padding "NOP" 1-byte saat mentransformasikan tidak langsung
panggilan ke fungsi yang ditentukan secara lokal, foo, melalui slot GOT-nya.
panggilan-nop=awalan-addr menghasilkan "0x67 panggilan foo".
call-nop=awalan-nop menghasilkan "0x90 panggilan foo".
call-nop=akhiran-nop menghasilkan "panggilan foo 0x90".
panggilan-nop=awalan-byte menghasilkan "byte panggilan foo".
panggilan-nop=akhiran-byte menghasilkan "panggilan foo byte". Didukung untuk
i386 dan x86_64.

Kata kunci lain diabaikan untuk kompatibilitas Solaris.

-( arsip -)
--start-grup arsip --end-grup
Grafik arsip harus berupa daftar file arsip. Mereka mungkin juga
nama file eksplisit, atau -l Pilihan.

Arsip yang ditentukan dicari berulang kali sampai tidak ada yang baru
referensi yang tidak ditentukan dibuat. Biasanya, arsip dicari
hanya sekali dalam urutan yang ditentukan pada baris perintah.
Jika simbol dalam arsip itu diperlukan untuk menyelesaikan masalah yang tidak ditentukan
simbol yang dirujuk oleh suatu objek dalam arsip yang muncul kemudian
baris perintah, tautan tidak akan dapat menyelesaikannya
referensi. Dengan mengelompokkan arsip, semuanya dicari
berulang kali sampai semua referensi yang mungkin diselesaikan.

Menggunakan opsi ini memiliki biaya kinerja yang signifikan. Ini yang terbaik
untuk menggunakannya hanya ketika ada referensi melingkar yang tidak dapat dihindari
antara dua atau lebih arsip.

--menerima-tidak diketahui-input-arch
--tidak-menerima-tidak diketahui-input-arch
Memberitahu linker untuk menerima file input yang arsitekturnya tidak dapat
dikenali. Asumsinya adalah bahwa pengguna tahu siapa mereka
melakukan dan dengan sengaja ingin menautkan file input yang tidak dikenal ini.
Ini adalah perilaku default dari linker, sebelum rilis 2.14.
Perilaku default dari rilis 2.14 dan seterusnya adalah menolak seperti itu
file input, dan begitu --menerima-tidak diketahui-input-arch pilihan telah
ditambahkan untuk mengembalikan perilaku lama.

--sesuai kebutuhan
--tidak sesuai kebutuhan
Opsi ini memengaruhi tag ELF DT_NEEDED untuk perpustakaan dinamis
disebutkan di baris perintah setelah --sesuai kebutuhan .
Biasanya penaut akan menambahkan tag DT_NEEDED untuk setiap dinamis
perpustakaan yang disebutkan di baris perintah, terlepas dari apakah
perpustakaan benar-benar dibutuhkan atau tidak. --sesuai kebutuhan menyebabkan DT_NEEDED
tag hanya akan dipancarkan untuk perpustakaan yang at bahwa titik in itu link
memenuhi referensi simbol tidak terdefinisi yang tidak lemah dari reguler
file objek atau, jika perpustakaan tidak ditemukan dalam daftar DT_NEEDED
perpustakaan lain yang dibutuhkan, referensi simbol tidak terdefinisi yang tidak lemah
dari perpustakaan dinamis lain yang dibutuhkan. File objek atau perpustakaan
muncul di baris perintah setelah perpustakaan yang bersangkutan tidak
mempengaruhi apakah perpustakaan dipandang sesuai kebutuhan. Ini mirip dengan
aturan untuk ekstraksi file objek dari arsip.
--tidak sesuai kebutuhan mengembalikan perilaku default.

--tambah-diperlukan
--tidak-tambah-perlu
Kedua opsi ini tidak digunakan lagi karena kesamaan
nama mereka untuk --sesuai kebutuhan dan --tidak sesuai kebutuhan pilihan. Mereka
telah diganti oleh --salin-dt-entri yang diperlukan dan
--tidak ada-salinan-dt-entri yang diperlukan.

-menegaskan kata kunci
Opsi ini diabaikan untuk kompatibilitas SunOS.

-Bdinamis
-dy
-panggilan_berbagi
Tautan terhadap perpustakaan dinamis. Ini hanya berarti di
platform yang mendukung perpustakaan bersama. Pilihan ini adalah
biasanya default pada platform tersebut. Varian yang berbeda dari
opsi ini untuk kompatibilitas dengan berbagai sistem. Kamu boleh
gunakan opsi ini beberapa kali di baris perintah: itu mempengaruhi
perpustakaan mencari -l pilihan yang mengikutinya.

-Bgrup
Setel bendera "DF_1_GROUP" di entri "DT_FLAGS_1" di dinamis
bagian. Ini menyebabkan runtime linker menangani pencarian di this
objek dan dependensinya untuk dilakukan hanya di dalam grup.
--unresolved-symbols=laporkan-semua tersirat. Pilihan ini hanya
bermakna pada platform ELF yang mendukung perpustakaan bersama.

-Bstatis
-dn
-tidak_dibagikan
-statis
Jangan menautkan ke perpustakaan bersama. Ini hanya berarti di
platform yang mendukung perpustakaan bersama. Yang berbeda
varian opsi ini untuk kompatibilitas dengan berbagai sistem.
Anda dapat menggunakan opsi ini beberapa kali di baris perintah: it
mempengaruhi pencarian perpustakaan -l pilihan yang mengikutinya. Ini
pilihan juga menyiratkan --unresolved-symbols=laporkan-semua. Pilihan ini
bisa digunakan dengan -bersama. Melakukannya berarti perpustakaan bersama adalah
sedang dibuat tetapi semua referensi eksternal perpustakaan
harus diselesaikan dengan menarik entri dari perpustakaan statis.

-Bsimbolik
Saat membuat perpustakaan bersama, ikat referensi ke simbol global
ke definisi dalam perpustakaan bersama, jika ada. Biasanya, itu
adalah mungkin untuk program yang terhubung dengan perpustakaan bersama untuk
menimpa definisi dalam perpustakaan bersama. Opsi ini dapat
juga digunakan dengan --ekspor-dinamis pilihan, saat membuat a
posisi executable independen, untuk mengikat referensi ke global
simbol ke definisi dalam executable. Pilihan ini adalah
hanya bermakna pada platform ELF yang mendukung perpustakaan bersama dan
posisi executable independen.

-Bsymbolic-fungsi
Saat membuat perpustakaan bersama, ikat referensi ke fungsi global
simbol ke definisi dalam perpustakaan bersama, jika ada. Ini
opsi juga dapat digunakan dengan --ekspor-dinamis pilihan, kapan
membuat posisi yang dapat dieksekusi independen, untuk mengikat referensi ke
simbol fungsi global ke definisi dalam executable.
Opsi ini hanya bermakna pada platform ELF yang mendukung
perpustakaan bersama dan memposisikan executable independen.

--dinamis-daftar=file-daftar-dinamis
Tentukan nama file daftar dinamis ke linker. Ini adalah
biasanya digunakan saat membuat perpustakaan bersama untuk menentukan daftar
simbol global yang referensinya tidak boleh terikat pada
definisi dalam perpustakaan bersama, atau membuat secara dinamis
executable terkait untuk menentukan daftar simbol yang harus
ditambahkan ke tabel simbol di executable. Pilihan ini hanya
bermakna pada platform ELF yang mendukung perpustakaan bersama.

Format daftar dinamis sama dengan simpul versi
tanpa ruang lingkup dan nama node. Lihat VERSION for more information.

--dinamis-daftar-data
Sertakan semua simbol data global ke daftar dinamis.

--dinamis-daftar-cpp-baru
Berikan daftar dinamis bawaan untuk operator C++ baru dan hapus.
Ini terutama berguna untuk membangun libstdc++ bersama.

--dinamis-daftar-cpp-typeinfo
Berikan daftar dinamis bawaan untuk tipe runtime C++
identifikasi.

--periksa-bagian
--no-check-bagian
Tanya linkernya tidak untuk memeriksa alamat bagian setelah mereka
ditugaskan untuk melihat apakah ada tumpang tindih. Biasanya linker
akan melakukan pemeriksaan ini, dan jika ditemukan tumpang tindih maka akan
menghasilkan pesan kesalahan yang sesuai. Penghubung memang tahu tentang, dan
tidak membuat kelonggaran untuk bagian dalam overlay. Standarnya
perilaku dapat dipulihkan dengan menggunakan sakelar baris perintah
--periksa-bagian. Bagian yang tumpang tindih biasanya tidak diperiksa
link yang dapat dipindahkan. Anda dapat memaksa memeriksa dalam kasus itu dengan menggunakan
itu --periksa-bagian .

--salin-dt-entri yang diperlukan
--tidak ada-salinan-dt-entri yang diperlukan
Opsi ini memengaruhi perawatan perpustakaan dinamis yang dirujuk
oleh tag DT_NEEDED dalam Pustaka dinamis ELF disebutkan di
garis komando. Biasanya penaut tidak akan menambahkan tag DT_NEEDED ke
keluaran biner untuk setiap perpustakaan yang disebutkan dalam tag DT_NEEDED di
masukan perpustakaan dinamis. Dengan --salin-dt-entri yang diperlukan ditentukan pada
baris perintah namun perpustakaan dinamis apa pun yang mengikutinya akan
memiliki entri DT_NEEDED mereka ditambahkan. Perilaku default dapat berupa
dipulihkan dengan --tidak ada-salinan-dt-entri yang diperlukan.

Opsi ini juga memiliki efek pada resolusi simbol di
perpustakaan dinamis. Dengan --salin-dt-entri yang diperlukan perpustakaan dinamis
disebutkan pada baris perintah akan dicari secara rekursif,
mengikuti tag DT_NEEDED mereka ke perpustakaan lain, untuk
menyelesaikan simbol yang diperlukan oleh biner keluaran. Dengan default
pengaturan namun pencarian perpustakaan dinamis yang mengikutinya
akan berhenti dengan perpustakaan dinamis itu sendiri. Tidak ada tautan DT_NEEDED yang akan
dilalui untuk menyelesaikan simbol.

--cref
Keluarkan tabel referensi silang. Jika file peta penghubung sedang
dihasilkan, tabel referensi silang dicetak ke file peta.
Jika tidak, itu dicetak pada output standar.

Format tabel sengaja dibuat sederhana, sehingga mungkin
mudah diproses oleh skrip jika perlu. Simbol dicetak
keluar, diurutkan berdasarkan nama. Untuk setiap simbol, daftar nama file adalah
diberikan. Jika simbol didefinisikan, file pertama yang terdaftar adalah
lokasi definisi. Jika simbol didefinisikan sebagai yang umum
nilai maka file apa pun di mana ini terjadi muncul berikutnya. Akhirnya ada
file yang mereferensikan simbol terdaftar.

--no-define-umum
Opsi ini menghambat penetapan alamat ke simbol umum.
Perintah skrip "INHIBIT_COMMON_ALLOCATION" memiliki efek yang sama.

Grafik --no-define-umum opsi memungkinkan decoupling keputusan untuk
menetapkan alamat ke simbol umum dari pilihan output
jenis berkas; jika tidak, tipe output yang tidak dapat dipindahkan memaksa penugasan
alamat ke simbol umum. Menggunakan --no-define-umum memungkinkan
Simbol umum yang dirujuk dari perpustakaan bersama menjadi
alamat yang diberikan hanya di program utama. Ini menghilangkan
ruang duplikat yang tidak digunakan di perpustakaan bersama, dan juga mencegah apa pun
kemungkinan kebingungan untuk menyelesaikan duplikat yang salah ketika ada
banyak modul dinamis dengan jalur pencarian khusus untuk runtime
resolusi simbol.

--defsym=simbol=ekspresi
Buat simbol global di file output, yang berisi absolut
alamat yang diberikan oleh ekspresi. Anda dapat menggunakan opsi ini berkali-kali
seperlunya untuk mendefinisikan beberapa simbol di baris perintah. A
bentuk aritmatika terbatas didukung untuk ekspresi dalam
konteks: Anda dapat memberikan konstanta heksadesimal atau nama an
simbol yang ada, atau gunakan "+" dan "-" untuk menambah atau mengurangi heksadesimal
konstanta atau simbol. Jika Anda membutuhkan ekspresi yang lebih rumit,
pertimbangkan untuk menggunakan bahasa perintah tautan dari skrip. Catatan:
seharusnya tidak ada ruang putih di antara simbol, tanda sama dengan
("="), dan ekspresi.

--demangle[=gaya]
--tanpa-demangle
Opsi ini mengontrol apakah akan mengubah nama simbol karena kesalahan
pesan dan keluaran lainnya. Ketika linker disuruh untuk demangle, itu
mencoba menyajikan nama simbol dengan cara yang mudah dibaca: itu strip
garis bawah utama jika mereka digunakan oleh format file objek, dan
mengubah nama simbol C++ yang rusak menjadi nama yang dapat dibaca pengguna.
Kompiler yang berbeda memiliki gaya mangling yang berbeda. opsional
argumen gaya demangling dapat digunakan untuk memilih yang sesuai
gaya demangling untuk kompiler Anda. Linker akan dibongkar oleh
default kecuali variabel lingkungan KUMPULKAN_NO_DEMANGLE diatur.
Opsi ini dapat digunakan untuk mengganti default.

-Ifillet
--dinamis-linker=fillet
Tetapkan nama penaut dinamis. Ini hanya berarti ketika
menghasilkan executable ELF yang terhubung secara dinamis. Dinamika default
linker biasanya benar; jangan gunakan ini kecuali Anda tahu apa yang Anda
sedang melakukan.

--no-dinamis-linker
Saat memproduksi file yang dapat dieksekusi, abaikan permintaan untuk dinamis
linker yang akan digunakan pada waktu buka. Ini hanya berarti bagi ELF
executable yang berisi relokasi dinamis, dan biasanya membutuhkan
kode titik masuk yang mampu memproses relokasi ini.

--peringatan-fatal
--tidak-fatal-peringatan
Perlakukan semua peringatan sebagai kesalahan. Perilaku default dapat berupa
dipulihkan dengan opsi --tidak-fatal-peringatan.

--force-exe-akhiran
Pastikan file keluaran memiliki akhiran .exe.

Jika file output yang sepenuhnya tertaut dengan sukses tidak memiliki a
akhiran ".exe" atau ".dll", opsi ini memaksa tautan untuk menyalin
output file ke salah satu nama yang sama dengan akhiran ".exe". Ini
opsi ini berguna saat menggunakan makefile Unix yang tidak dimodifikasi pada a
Host Microsoft Windows, karena beberapa versi Windows tidak dapat dijalankan dan
image kecuali diakhiri dengan akhiran ".exe".

--gc-bagian
--no-gc-bagian
Aktifkan pengumpulan sampah dari bagian input yang tidak digunakan. Itu diabaikan
pada target yang tidak mendukung opsi ini. Perilaku default
(tidak melakukan pengumpulan sampah ini) dapat dipulihkan dengan
menentukan --no-gc-bagian pada baris perintah. Perhatikan bahwa sampah
koleksi untuk target format COFF dan PE didukung, tetapi
implementasi saat ini dianggap eksperimental.

--gc-bagian memutuskan bagian input mana yang digunakan dengan memeriksa
simbol dan relokasi. Bagian yang berisi simbol entri
dan semua bagian yang berisi simbol yang tidak ditentukan pada baris perintah
akan disimpan, seperti juga bagian yang berisi simbol yang dirujuk oleh
objek dinamis. Perhatikan bahwa saat membangun perpustakaan bersama,
linker harus berasumsi bahwa simbol yang terlihat direferensikan. Satu kali
set bagian awal ini telah ditentukan, penghubung
menandai secara rekursif seperti yang digunakan setiap bagian yang dirujuk oleh
relokasi. Lihat --pintu masuk dan --tidak terdefinisi.

Opsi ini dapat diatur saat melakukan tautan parsial (diaktifkan dengan
Option -r). Dalam hal ini akar dari simbol yang disimpan harus
secara eksplisit ditentukan baik oleh --pintu masuk or --tidak terdefinisi opsi atau
dengan perintah "ENTRY" di skrip tautan.

--print-gc-bagian
--tidak ada-cetak-gc-bagian
Daftar semua bagian yang dihapus oleh pengumpulan sampah. Daftarnya adalah
dicetak di stderr. Opsi ini hanya efektif jika sampah
koleksi telah diaktifkan melalui --gc-bagian) pilihan. NS
perilaku default (tidak mencantumkan bagian yang dihapus)
dapat dipulihkan dengan menentukan --tidak ada-cetak-gc-bagian atas perintah
line.

--cetak-output-format
Cetak nama format keluaran default (mungkin dipengaruhi oleh
opsi baris perintah lainnya). Ini adalah string yang akan muncul
dalam perintah skrip tautan "OUTPUT_FORMAT".

--cetak-memori-penggunaan
Cetak ukuran yang digunakan, ukuran total dan ukuran yang digunakan dari wilayah memori yang dibuat
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. MEMORY memerintah. Ini berguna pada target yang disematkan untuk
memiliki tampilan cepat dari jumlah memori bebas. Format dari
output memiliki satu judul dan satu baris per wilayah. Itu sama-sama manusia
dapat dibaca dan mudah diuraikan oleh alat. Berikut adalah contoh dari
keluaran:

Wilayah memori Ukuran Wilayah Digunakan Ukuran % umur Digunakan
ROM: 256 KB 1 MB 25.00%
RAM: 32 B 2 GB 0.00%

--membantu
Cetak ringkasan opsi baris perintah pada output standar
dan keluar.

--target-bantuan
Cetak ringkasan semua opsi spesifik target pada standar
keluaran dan keluar.

-Peta=berkas peta
Cetak peta tautan ke file berkas peta. Lihat deskripsi
-M pilihan, di atas.

--no-keep-memori
ld biasanya mengoptimalkan kecepatan penggunaan memori dengan menyimpan cache
tabel simbol file input dalam memori. Opsi ini memberitahu ld untuk
alih-alih mengoptimalkan penggunaan memori, dengan membaca ulang tabel simbol
seperlunya. Ini mungkin diperlukan jika ld kehabisan ruang memori
sambil menautkan executable besar.

--tidak-tidak terdefinisi
-z def
Laporkan referensi simbol yang belum terselesaikan dari file objek biasa.
Ini dilakukan bahkan jika penaut membuat pembagian non-simbolis
Perpustakaan. Tombol --[tidak-]izinkan-shlib-tidak terdefinisi mengontrol
perilaku untuk melaporkan referensi yang belum terselesaikan yang ditemukan di shared
perpustakaan yang terhubung.

--allow-multi-definition
-z muldef
Biasanya ketika simbol didefinisikan beberapa kali, linker akan
melaporkan kesalahan fatal. Opsi ini memungkinkan banyak definisi dan
definisi pertama yang akan digunakan.

--izinkan-shlib-tidak terdefinisi
--tidak-izinkan-shlib-tidak terdefinisi
Mengizinkan atau melarang simbol yang tidak ditentukan di pustaka bersama. Ini
saklar mirip dengan --tidak-tidak terdefinisi kecuali yang menentukan
perilaku ketika simbol yang tidak ditentukan ada di perpustakaan bersama
daripada file objek biasa. Itu tidak mempengaruhi seberapa tidak terdefinisi
simbol dalam file objek biasa ditangani.

Perilaku default adalah melaporkan kesalahan untuk simbol yang tidak ditentukan
direferensikan di perpustakaan bersama jika tautan digunakan untuk
buat yang dapat dieksekusi, tetapi untuk mengizinkannya jika tautan sedang digunakan
untuk membuat perpustakaan bersama.

Alasan untuk mengizinkan referensi simbol yang tidak ditentukan di shared
perpustakaan yang ditentukan pada waktu tautan adalah:

· Pustaka bersama yang ditentukan pada waktu tautan mungkin tidak sama dengan
yang tersedia pada waktu buka, jadi simbolnya mungkin
sebenarnya dapat diselesaikan pada waktu buka.

· Ada beberapa sistem operasi, misalnya BeOS dan HPPA, di mana
simbol yang tidak ditentukan di perpustakaan bersama adalah normal.

Kernel BeOS misalnya, menambal pustaka bersama saat dimuat
waktu untuk memilih fungsi mana yang paling sesuai untuk
arsitektur saat ini. Ini digunakan, misalnya, untuk
secara dinamis memilih fungsi memset yang sesuai.

--no-undefined-versi
Biasanya ketika simbol memiliki versi yang tidak ditentukan, linker akan
abaikan itu. Opsi ini tidak mengizinkan simbol dengan versi yang tidak ditentukan dan
kesalahan fatal akan dikeluarkan sebagai gantinya.

--default-simver
Buat dan gunakan versi simbol default (soname) untuk
simbol yang diekspor tidak berversi.

--default-import-symver
Buat dan gunakan versi simbol default (soname) untuk
simbol yang diimpor tidak berversi.

--tidak-peringatkan-ketidakcocokan
Biasanya ld akan memberikan kesalahan jika Anda mencoba menghubungkan input bersama
file yang tidak cocok untuk beberapa alasan, mungkin karena mereka
telah dikompilasi untuk prosesor yang berbeda atau untuk yang berbeda
endianness. Opsi ini memberitahu ld bahwa itu harus diam-diam mengizinkan
kemungkinan kesalahan seperti itu. Opsi ini hanya boleh digunakan dengan hati-hati,
dalam kasus ketika Anda telah mengambil beberapa tindakan khusus yang memastikan bahwa
kesalahan tautan tidak pantas.

--tidak ada-peringatkan-pencarian-ketidakcocokan
Biasanya ld akan memberikan peringatan jika menemukan perpustakaan yang tidak kompatibel
selama pencarian perpustakaan. Opsi ini membungkam peringatan.

--tidak-seluruh-arsip
Matikan efek --seluruh-arsip pilihan untuk selanjutnya
arsipkan file.

--noinhibit-exec
Pertahankan file output yang dapat dieksekusi setiap kali masih dapat digunakan.
Biasanya, tautan tidak akan menghasilkan file keluaran jika itu
menemukan kesalahan selama proses tautan; itu keluar tanpa menulis
file output ketika mengeluarkan kesalahan apa pun.

-nostdlib
Hanya mencari direktori perpustakaan yang ditentukan secara eksplisit pada perintah
garis. Direktori perpustakaan yang ditentukan dalam skrip tautan (termasuk
skrip tautan yang ditentukan pada baris perintah) diabaikan.

--oformat=format output
ld dapat dikonfigurasi untuk mendukung lebih dari satu jenis file objek.
Jika Anda ld dikonfigurasi dengan cara ini, Anda dapat menggunakan --oformat Option
untuk menentukan format biner untuk file objek keluaran. Bahkan ketika
ld dikonfigurasi untuk mendukung format objek alternatif, Anda tidak
biasanya perlu menentukan ini, sebagai ld harus dikonfigurasi untuk menghasilkan
sebagai format output default format yang paling biasa pada setiap mesin.
format output adalah string teks, nama format tertentu
didukung oleh perpustakaan BFD. (Anda dapat membuat daftar biner yang tersedia
format dengan keberatan -i.) Perintah skrip "OUTPUT_FORMAT" dapat
juga menentukan format output, tetapi opsi ini menimpanya.

-pai
--pic-dapat dieksekusi
Buat posisi yang dapat dieksekusi independen. Saat ini hanya
didukung pada platform ELF. Posisi executable independen adalah
mirip dengan perpustakaan bersama karena dipindahkan oleh
penaut dinamis ke alamat virtual yang dipilih OS untuk mereka
(yang dapat bervariasi antara doa). Seperti biasa secara dinamis
executable terkait mereka dapat dieksekusi dan simbol didefinisikan dalam
yang dapat dieksekusi tidak dapat ditimpa oleh pustaka bersama.

-qajaib
Opsi ini diabaikan untuk kompatibilitas Linux.

-Qy Opsi ini diabaikan untuk kompatibilitas SVR4.

--santai
--tidak-santai
Opsi dengan efek yang bergantung pada mesin. Pilihan ini hanya
didukung pada beberapa target.

Pada beberapa platform, --santai opsi melakukan target spesifik,
pengoptimalan global yang menjadi mungkin saat tautan diselesaikan
menangani dalam program, seperti mode alamat santai,
mensintesis instruksi baru, memilih versi yang lebih pendek dari saat ini
instruksi, dan menggabungkan nilai-nilai konstan.

Pada beberapa platform, pengoptimalan global waktu tautan ini dapat membuat
debugging simbolis dari executable yang dihasilkan tidak mungkin. Ini adalah
dikenal sebagai kasus untuk keluarga Matsushita MN10200 dan MN10300
prosesor.

Pada platform di mana ini tidak didukung, --santai diterima, tapi
diabaikan.

Pada platform di mana --santai diterima pilihannya --tidak-santai dapat
digunakan untuk menonaktifkan fitur.

--retain-simbol-file=nama file
Menahan hanya simbol yang tercantum dalam file nama file, membuang semua
lainnya nama file hanyalah sebuah file datar, dengan satu nama simbol per
garis. Opsi ini sangat berguna di lingkungan (seperti
VxWorks) di mana tabel simbol global besar terakumulasi
secara bertahap, untuk menghemat memori run-time.

--retain-simbol-file tidak tidak membuang simbol yang tidak ditentukan, atau
simbol yang diperlukan untuk relokasi.

Anda hanya dapat menentukan --retain-simbol-file sekali dalam perintah
garis. Ini menimpa -s dan -S.

-rjalur=dir
Tambahkan direktori ke jalur pencarian pustaka runtime. Ini digunakan
saat menautkan ELF yang dapat dieksekusi dengan objek bersama. Semua -rjalan
argumen digabungkan dan diteruskan ke tautan runtime, yang
menggunakannya untuk menemukan objek bersama saat runtime. NS -rjalan Option
juga digunakan ketika menemukan objek bersama yang dibutuhkan oleh
objek yang dibagikan secara eksplisit disertakan dalam tautan; lihat deskripsi
dari -rpath-tautan pilihan. Jika -rjalan tidak digunakan saat menautkan
ELF dapat dieksekusi, isi variabel lingkungan
"LD_RUN_PATH" akan digunakan jika sudah ditentukan.

Grafik -rjalan opsi juga dapat digunakan pada SunOS. Secara default, pada SunOS,
tautan akan membentuk jalur pencarian runtime dari semua -L
pilihan yang diberikan. Jika sebuah -rjalan opsi digunakan, runtime
jalur pencarian akan dibentuk secara eksklusif menggunakan -rjalan Pilihan
mengabaikan -L pilihan. Ini bisa berguna saat menggunakan gcc, yang
menambahkan banyak -L opsi yang mungkin ada di sistem file yang dipasang NFS.

Untuk kompatibilitas dengan linker ELF lainnya, jika -R pilihannya adalah
diikuti dengan nama direktori, bukan nama file, itu adalah
diperlakukan sebagai -rjalan .

-rpath-tautan=dir
Saat menggunakan ELF atau SunOS, satu perpustakaan bersama mungkin memerlukan yang lain.
Ini terjadi ketika tautan "ld -shared" menyertakan perpustakaan bersama sebagai
salah satu file masukan.

Ketika linker menemukan ketergantungan seperti itu saat melakukan non-
tautan yang dibagikan dan tidak dapat dipindahkan, itu akan secara otomatis mencoba mencari
perpustakaan bersama yang diperlukan dan sertakan dalam tautan, jika ada
tidak dicantumkan secara eksplisit. Dalam kasus seperti itu, -rpath-tautan Option
menentukan set direktori pertama yang akan dicari. NS -rpath-tautan
opsi dapat menentukan urutan nama direktori baik dengan
menentukan daftar nama yang dipisahkan oleh titik dua, atau dengan muncul
beberapa kali.

Opsi ini harus digunakan dengan hati-hati karena mengesampingkan pencarian
jalur yang mungkin telah dikompilasi dengan susah payah ke dalam perpustakaan bersama. Di dalam
kasus seperti itu dimungkinkan untuk menggunakan yang berbeda secara tidak sengaja
jalur pencarian daripada yang akan dilakukan oleh runtime linker.

Linker menggunakan jalur pencarian berikut untuk menemukan yang dibutuhkan
perpustakaan bersama:

1. Direktori apa pun yang ditentukan oleh -rpath-tautan Pilihan.

2. Direktori apa pun yang ditentukan oleh -rjalan pilihan. Perbedaan
antara -rjalan dan -rpath-tautan adalah direktori yang ditentukan oleh
-rjalan opsi termasuk dalam yang dapat dieksekusi dan digunakan di
runtime, sedangkan -rpath-tautan pilihan hanya efektif di
menghubungkan waktu. mencari -rjalan dengan cara ini hanya didukung oleh
penaut asli dan penaut silang yang telah dikonfigurasi
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. --dengan-sysroot .

3. Pada sistem ELF, untuk native linker, jika: -rjalan dan
-rpath-tautan opsi tidak digunakan, cari konten
variabel lingkungan "LD_RUN_PATH".

4. Pada SunOS, jika -rjalan opsi tidak digunakan, cari apa saja
direktori yang ditentukan menggunakan -L Pilihan.

5. Untuk tautan asli, cari konten lingkungan
variabel "LD_LIBRARY_PATH".

6. Untuk linker ELF asli, direktori di "DT_RUNPATH" atau
"DT_RPATH" dari perpustakaan bersama dicari untuk dibagikan
perpustakaan yang dibutuhkan olehnya. Entri "DT_RPATH" diabaikan jika
Ada entri "DT_RUNPATH".

7. Direktori default, biasanya / lib dan / Usr / lib.

8. Untuk linker asli pada sistem ELF, jika file
/etc/ld.so.conf ada, daftar direktori yang ditemukan di dalamnya
file.

Jika perpustakaan bersama yang diperlukan tidak ditemukan, penaut akan mengeluarkan
peringatan dan lanjutkan dengan tautan.

-bersama
-Dapat dibagikan
Buat perpustakaan bersama. Saat ini hanya didukung di ELF,
Platform XCOFF dan SunOS. Di SunOS, tautan akan secara otomatis
buat perpustakaan bersama jika -e opsi tidak digunakan dan ada
simbol yang tidak ditentukan dalam tautan.

--sort-umum
--sort-common=naik
--sort-common=turun
Opsi ini memberitahu ld untuk mengurutkan simbol-simbol umum dengan menyelaraskan di
urutan menaik atau menurun ketika menempatkan mereka di
bagian keluaran yang sesuai. Keberpihakan simbol yang dipertimbangkan adalah
enam belas-byte atau lebih besar, delapan-byte, empat-byte, dua-byte, dan satu-
byte. Ini untuk mencegah kesenjangan antar simbol karena penyelarasan
kendala. Jika tidak ada urutan penyortiran yang ditentukan, maka turun
urutan diasumsikan.

--sort-section=nama
Opsi ini akan menerapkan "SORT_BY_NAME" ke semua bagian wildcard
pola dalam skrip tautan.

--sort-section=perataan
Opsi ini akan menerapkan "SORT_BY_ALIGNMENT" ke semua bagian wildcard
pola dalam skrip tautan.

--split-demi-file[=ukuran]
Mirip dengan --split-demi-relokasi tetapi membuat bagian keluaran baru untuk
setiap file input ketika ukuran tercapai. ukuran default ke ukuran 1
jika tidak diberikan.

--split-by-reloc[=menghitung]
Mencoba membuat bagian tambahan di file keluaran sehingga tidak ada
bagian keluaran tunggal dalam file berisi lebih dari menghitung
relokasi. Ini berguna saat menghasilkan file besar yang dapat dipindahkan
untuk mengunduh ke kernel waktu nyata tertentu dengan objek COFF
format berkas; karena COFF tidak dapat mewakili lebih dari 65535
relokasi dalam satu bagian. Perhatikan bahwa ini akan gagal berfungsi
dengan format file objek yang tidak mendukung bagian sembarang.
Linker tidak akan membagi bagian input individual untuk
redistribusi, jadi jika satu bagian input berisi lebih dari
menghitung relokasi satu bagian keluaran akan berisi sebanyak itu
relokasi. menghitung default ke nilai 32768.

--statistik
Hitung dan tampilkan statistik tentang pengoperasian tautan,
seperti waktu eksekusi dan penggunaan memori.

--sysroot=direktori
penggunaan direktori sebagai lokasi sysroot, menimpa
konfigurasi waktu default. Opsi ini hanya didukung oleh tautan
yang dikonfigurasi menggunakan --dengan-sysroot.

--format-tradisional
Untuk beberapa target, output dari ld berbeda dalam beberapa hal dari
output dari beberapa linker yang ada. Peralihan ini meminta ld untuk menggunakan
format tradisional sebagai gantinya.

Misalnya, pada SunOS, ld menggabungkan entri duplikat dalam simbol
meja tali. Ini dapat mengurangi ukuran file output dengan penuh
men-debug informasi lebih dari 30 persen. Sayangnya, SunOS
Program "dbx" tidak dapat membaca program yang dihasilkan ("gdb" tidak memiliki
Masalah). NS --format-tradisional beralih memberitahu ld untuk tidak menggabungkan
entri duplikat.

--bagian-mulai=nama bagian=org
Temukan bagian dalam file output di alamat absolut yang diberikan
by org. Anda dapat menggunakan opsi ini sebanyak yang diperlukan untuk
temukan beberapa bagian di baris perintah. org harus single
bilangan bulat heksadesimal; untuk kompatibilitas dengan tautan lain, Anda dapat
hilangkan yang terdepan 0x biasanya dikaitkan dengan nilai heksadesimal.
Catatan: seharusnya tidak ada ruang putih di antara nama bagian, yang
tanda sama dengan ("="), dan org.

-Tbs =org
-Data=org
-Tteks=org
Sama dengan --bagian-mulai, dengan ".bss", ".data" atau ".text" sebagai
nama bagian.

-Tteks-segmen=org
Saat membuat executable ELF, itu akan mengatur alamat dari
byte pertama dari segmen teks.

-Trodata-segmen=org
Saat membuat objek yang dapat dieksekusi atau dibagikan ELF untuk target di mana
data read-only berada di segmennya sendiri yang terpisah dari
teks yang dapat dieksekusi, itu akan mengatur alamat byte pertama dari
segmen data hanya-baca.

-Tldata-segmen=org
Saat membuat objek yang dapat dieksekusi atau dibagikan ELF untuk media x86-64
model memori, itu akan mengatur alamat byte pertama dari
segmen data.

--belum terselesaikan-simbol=metode
Tentukan bagaimana menangani simbol yang belum terselesaikan. Ada empat
kemungkinan nilai untuk metode:

abaikan semua
Jangan laporkan simbol yang belum terselesaikan.

laporkan semua
Laporkan semua simbol yang belum terselesaikan. Ini adalah default.

abaikan-dalam-objek-file
Laporkan simbol yang belum terselesaikan yang terkandung dalam shared
perpustakaan, tetapi abaikan jika berasal dari objek biasa
file.

abaikan-di-berbagi-libs
Laporkan simbol yang belum terselesaikan yang berasal dari file objek biasa,
tetapi abaikan jika berasal dari perpustakaan bersama. Ini bisa
berguna saat membuat biner dinamis dan diketahui bahwa
semua perpustakaan bersama yang harus dirujuk adalah
disertakan pada baris perintah linker.

Perilaku untuk perpustakaan bersama mereka sendiri juga dapat
dikendalikan oleh --[tidak-]izinkan-shlib-tidak terdefinisi .

Biasanya tautan akan menghasilkan pesan kesalahan untuk masing-masing
melaporkan simbol yang belum terselesaikan tetapi opsi --peringatan-belum terselesaikan-simbol
dapat mengubah ini menjadi peringatan.

--dll-verbose
--verbose[=NOMOR]
Tampilkan nomor versi untuk ld dan buat daftar emulasi tautan
didukung. Menampilkan file input mana yang bisa dan tidak bisa dibuka.
Menampilkan script linker yang digunakan oleh linker. Jika opsional
NOMOR argumen > 1, status simbol plugin juga akan ditampilkan.

--versi-skrip=versi-scriptfile
Tentukan nama skrip versi ke linker. Ini adalah
biasanya digunakan saat membuat pustaka bersama untuk menentukan tambahan
informasi tentang hierarki versi untuk perpustakaan yang
dibuat. Opsi ini hanya didukung penuh pada platform ELF
yang mendukung perpustakaan bersama; Lihat VERSION. Itu sebagian
didukung pada platform PE, yang dapat menggunakan skrip versi untuk memfilter
visibilitas simbol dalam mode ekspor otomatis: simbol apa pun yang ditandai lokal in
skrip versi tidak akan diekspor.

--peringatan-umum
Peringatkan ketika simbol umum digabungkan dengan simbol umum lainnya atau
dengan definisi simbol. Linker Unix memungkinkan ini agak ceroboh
praktek, tetapi linker pada beberapa sistem operasi lain tidak. Ini
opsi memungkinkan Anda menemukan potensi masalah dari menggabungkan global
simbol. Sayangnya, beberapa pustaka C menggunakan praktik ini, jadi Anda
mungkin mendapatkan beberapa peringatan tentang simbol di perpustakaan serta di
program Anda.

Ada tiga jenis simbol global, diilustrasikan di sini oleh C
contoh:

int i = 1;
Definisi, yang masuk ke bagian data yang diinisialisasi dari
berkas keluaran.

luar int i;
Referensi yang tidak ditentukan, yang tidak mengalokasikan ruang. Di sana
harus berupa definisi atau simbol umum untuk variabel
di suatu tempat.

int i;
Sebuah simbol umum. Jika hanya ada (satu atau lebih) yang sama
simbol untuk variabel, ia masuk ke area data yang tidak diinisialisasi
dari file keluaran. Linker menggabungkan beberapa simbol umum
untuk variabel yang sama menjadi satu simbol. Jika mereka dari
ukuran yang berbeda, ia memilih ukuran terbesar. Penghubung berubah menjadi
simbol umum menjadi deklarasi, jika ada definisi
variabel yang sama.

Grafik --peringatan-umum opsi dapat menghasilkan lima jenis peringatan. Setiap
peringatan terdiri dari sepasang garis: yang pertama menggambarkan simbol
baru saja ditemui, dan yang kedua menggambarkan simbol sebelumnya
ditemui dengan nama yang sama. Salah satu atau kedua dari dua simbol
akan menjadi simbol umum.

1. Mengubah simbol umum menjadi referensi, karena ada
sudah menjadi definisi untuk simbol.

( ): peringatan: umum dari ` '
ditimpa oleh definisi
( ): peringatan: didefinisikan di sini

2. Mengubah simbol umum menjadi referensi, karena nanti
definisi untuk simbol ditemui. Ini sama dengan
kasus sebelumnya, kecuali bahwa simbol-simbol yang ditemui dalam a
urutan yang berbeda.

( ): peringatan: definisi dari ` '
mengesampingkan umum
( ): peringatan: umum ada di sini

3. Menggabungkan simbol yang sama dengan yang sebelumnya berukuran sama
simbol.

( ): peringatan: beberapa umum
dari ` '
( ): peringatan: umum sebelumnya ada di sini

4. Menggabungkan simbol umum dengan simbol umum sebelumnya yang lebih besar.

( ): peringatan: umum dari ` '
ditimpa oleh common yang lebih besar
( ): peringatan: umum yang lebih besar ada di sini

5. Menggabungkan simbol umum dengan simbol umum yang lebih kecil sebelumnya.
Ini sama dengan kasus sebelumnya, kecuali bahwa simbol
ditemui dalam urutan yang berbeda.

( ): peringatan: umum dari ` '
mengesampingkan umum yang lebih kecil
( ): peringatan: umum yang lebih kecil ada di sini

--peringatkan-konstruktor
Peringatkan jika ada konstruktor global yang digunakan. Ini hanya berguna untuk
beberapa format file objek. Untuk format seperti COFF atau ELF,
linker tidak dapat mendeteksi penggunaan konstruktor global.

--peringatkan-beberapa-gp
Peringatkan jika beberapa nilai penunjuk global diperlukan dalam output
mengajukan. Ini hanya berarti untuk prosesor tertentu, seperti
Alfa. Secara khusus, beberapa prosesor memasukkan konstanta bernilai besar ke dalam
bagian khusus. Sebuah register khusus (penunjuk global) menunjuk
ke tengah bagian ini, sehingga konstanta dapat dimuat
efisien melalui mode pengalamatan relatif register-basis. Sejak
offset dalam mode relatif register-basis adalah tetap dan relatif
kecil (misalnya, 16 bit), ini membatasi ukuran maksimum konstanta
kolam. Jadi, dalam program besar, sering kali perlu menggunakan
beberapa nilai penunjuk global agar dapat mengatasi semua
konstanta yang mungkin. Opsi ini menyebabkan peringatan dikeluarkan
setiap kali kasus ini terjadi.

--peringatkan-sekali
Hanya peringatkan sekali untuk setiap simbol yang tidak ditentukan, bukan sekali per
modul yang merujuk padanya.

--peringatkan-bagian-selaras
Peringatkan jika alamat bagian keluaran diubah karena
penyelarasan. Biasanya, penyelarasan akan diatur oleh input
bagian. Alamat hanya akan diubah jika tidak secara eksplisit
ditentukan; yaitu, jika perintah "SECTIONS" tidak menentukan a
alamat awal untuk bagian tersebut.

--memperingatkan-berbagi-textrel
Peringatkan jika penaut menambahkan DT_TEXTREL ke objek bersama.

--warn-alternatif-em
Peringatkan jika suatu objek memiliki kode mesin ELF alternatif.

--peringatan-belum terselesaikan-simbol
Jika penaut akan melaporkan simbol yang belum terselesaikan (lihat
Option --belum terselesaikan-simbol) biasanya akan menghasilkan kesalahan.
Opsi ini membuatnya menghasilkan peringatan sebagai gantinya.

--error-unresolved-simbol
Ini mengembalikan perilaku default penaut dalam menghasilkan kesalahan
ketika melaporkan simbol yang belum terselesaikan.

--seluruh-arsip
Untuk setiap arsip yang disebutkan pada baris perintah setelah
--seluruh-arsip opsi, sertakan setiap file objek dalam arsip di
tautan, daripada mencari arsip untuk objek yang diperlukan
file. Ini biasanya digunakan untuk mengubah file arsip menjadi file bersama
perpustakaan, memaksa setiap objek untuk dimasukkan dalam hasil
perpustakaan bersama. Opsi ini dapat digunakan lebih dari sekali.

Dua catatan saat menggunakan opsi ini dari gcc: Pertama, gcc tidak tahu
tentang opsi ini, jadi Anda harus menggunakan -Wl,-seluruh-arsip. Kedua,
jangan lupa pakai -Wl,-tidak-seluruh-arsip setelah daftar Anda
arsip, karena gcc akan menambahkan daftar arsipnya sendiri ke
tautan dan Anda mungkin tidak ingin tanda ini memengaruhinya juga.

--bungkus=simbol
Gunakan fungsi pembungkus untuk simbol. Setiap referensi yang tidak ditentukan ke
simbol akan diselesaikan menjadi "__wrap_simbol". Tidak terdefinisi
referensi ke "__real_simbol" akan diselesaikan untuk simbol.

Ini dapat digunakan untuk menyediakan pembungkus untuk fungsi sistem. NS
fungsi pembungkus harus disebut "__wrap_simbol". Jika ingin
panggil fungsi sistem, itu harus memanggil "__real_simbol".

Berikut adalah contoh sepele:

ruang kosong *
__wrap_malloc (ukuran_t c)
{
printf("malloc dipanggil dengan %zu\n", c);
kembali __real_malloc (c);
}

Jika Anda menautkan kode lain dengan file ini menggunakan --membungkus malloc, maka semua
panggilan ke "malloc" akan memanggil fungsi "__wrap_malloc" sebagai gantinya.
Panggilan ke "__real_malloc" di "__wrap_malloc" akan memanggil yang asli
fungsi "malloc".

Anda mungkin ingin menyediakan fungsi "__real_malloc" juga, sehingga
link tanpa --membungkus pilihan akan berhasil. Jika Anda melakukan ini, Anda
tidak boleh meletakkan definisi "__real_malloc" di file yang sama
sebagai "__wrap_malloc"; jika Anda melakukannya, assembler dapat menyelesaikan panggilan
sebelum linker memiliki kesempatan untuk membungkusnya ke "malloc".

--eh-bingkai-hdr
Minta pembuatan bagian ".eh_frame_hdr" dan ELF
Header segmen "PT_GNU_EH_FRAME".

--no-ld-generated-unwind-info
Minta pembuatan info pelepasan ".eh_frame" untuk tautan yang dihasilkan
bagian kode seperti PLT. Opsi ini aktif secara default jika penaut
info bersantai yang dihasilkan didukung.

--aktifkan-tag-baru
--nonaktifkan-dtag-baru
Linker ini dapat membuat tag dinamis baru di ELF. Tapi yang lebih tua
Sistem ELF mungkin tidak memahaminya. Jika Anda menentukan
--aktifkan-tag-baru, tag dinamis baru akan dibuat sesuai kebutuhan
dan tag dinamis yang lebih lama akan dihilangkan. Jika Anda menentukan
--nonaktifkan-dtag-baru, tidak ada tag dinamis baru yang akan dibuat. Oleh
default, tag dinamis baru tidak dibuat. Perhatikan bahwa
pilihan hanya tersedia untuk sistem ELF.

--ukuran hash=jumlah
Setel ukuran default tabel hash tautan ke bilangan prima
dekat dengan jumlah. Meningkatkan nilai ini dapat mengurangi panjang
waktu yang dibutuhkan penghubung untuk melakukan tugasnya, dengan mengorbankan
meningkatkan kebutuhan memori linker. Demikian pula mengurangi
nilai ini dapat mengurangi kebutuhan memori dengan mengorbankan
kecepatan.

--gaya hash=gaya
Setel jenis tabel hash penaut. gaya bisa berupa "sysv"
untuk bagian ".hash" ELF klasik, "gnu" untuk GNU gaya baru
bagian ".gnu.hash" atau "keduanya" untuk ELF klasik ".hash" dan
gaya baru GNU ".gnu.hash" tabel hash. Standarnya adalah "sysv".

--compress-debug-sections=tidak ada
--kompres-debug-bagian=zlib
--kompres-debug-bagian=zlib-gnu
--kompres-debug-bagian=zlib-gabi
Pada platform ELF , opsi ini mengontrol bagaimana bagian debug DWARF
dikompres menggunakan zlib. --compress-debug-sections=tidak ada tidak
kompres bagian debug DWARF. --kompres-debug-bagian=zlib-gnu
kompres bagian debug DWARF dan ganti nama bagian debug menjadi
mulai dengan .zdebug alih-alih .debug.
--kompres-debug-bagian=zlib dan
--kompres-debug-bagian=zlib-gabi kompres bagian debug DWARF
dengan SHF_COMPRESSED dari ELF ABI. Perilaku default bervariasi
tergantung pada target yang terlibat dan opsi konfigurasi yang digunakan
untuk membangun rantai alat. Default dapat ditentukan dengan memeriksa
output dari linker's --membantu .

--mengurangi-memori-overhead
Opsi ini mengurangi kebutuhan memori pada waktu proses ld, pada saat
biaya menghubungkan kecepatan. Ini diperkenalkan untuk memilih yang lama
O(n^2) algoritma untuk pembuatan file peta tautan, bukan yang baru
Algoritma O(n) yang menggunakan sekitar 40% lebih banyak memori untuk penyimpanan simbol.

Efek lain dari sakelar adalah mengatur ukuran tabel hash default
ke 1021, yang sekali lagi menghemat memori dengan biaya memperpanjang
waktu berjalan linker. Namun hal ini tidak dilakukan jika --ukuran hash
saklar telah digunakan.

Grafik --mengurangi-memori-overhead sakelar juga dapat digunakan untuk mengaktifkan
pengorbanan lainnya di versi tautan mendatang.

--membangun-id
--membangun-id=gaya
Minta pembuatan bagian catatan ELF ".note.gnu.build-id" atau
bagian COFF ".buildid". Isi catatannya unik
bit yang mengidentifikasi file tertaut ini. gaya bisa "uuid" untuk menggunakan 128
bit acak, "sha1" untuk menggunakan hash SHA160 1-bit pada normatif
bagian dari konten keluaran, "md5" untuk menggunakan hash MD128 5-bit pada
bagian normatif dari konten keluaran, atau "0xhexstring" untuk menggunakan
string bit yang dipilih ditentukan sebagai bilangan genap heksadesimal
digit ("-" dan ":" karakter antara pasangan digit diabaikan).
If gaya dihilangkan, "sha1" digunakan.

Gaya "md5" dan "sha1" menghasilkan pengenal yang selalu
sama dalam file output yang identik, tetapi akan unik di antara semua
file keluaran yang tidak identik. Itu tidak dimaksudkan untuk dibandingkan sebagai
checksum untuk konten file. File tertaut dapat diubah
kemudian oleh alat lain, tetapi string bit ID build mengidentifikasi
file tertaut asli tidak berubah.

Melewati "tidak ada" untuk gaya menonaktifkan pengaturan dari "--build-id" apa pun
pilihan sebelumnya pada baris perintah.

Penaut i386 PE mendukung -bersama opsi, yang menyebabkan output
menjadi perpustakaan yang ditautkan secara dinamis (DLL) alih-alih yang normal
dapat dieksekusi. Anda harus memberi nama output "*.dll" saat Anda menggunakan ini
pilihan. Selain itu, linker sepenuhnya mendukung standar "*.def"
file, yang dapat ditentukan pada baris perintah linker seperti objek
file (sebenarnya, itu harus mendahului arsip yang mengekspor simbol dari, ke
memastikan bahwa mereka terhubung, seperti file objek normal).

Selain opsi umum untuk semua target, i386 PE linker
mendukung opsi baris perintah tambahan yang khusus untuk i386
sasaran PP. Opsi yang mengambil nilai dapat dipisahkan dari nilainya
dengan spasi atau tanda sama dengan.

--tambahkan-stdcall-alias
Jika diberikan, simbol dengan akhiran stdcall (@nn) akan diekspor sebagai-
adalah dan juga dengan akhiran yang dilucuti. [Opsi ini khusus untuk
port tautan yang ditargetkan i386 PE]

--berkas dasar fillet
penggunaan fillet sebagai nama file untuk menyimpan alamat dasar
dari semua relokasi yang diperlukan untuk menghasilkan DLL dengan dlltool.
[Ini adalah opsi khusus i386 PE]

--dll
Buat DLL alih-alih executable biasa. Anda juga dapat menggunakan
-bersama atau tentukan "PERPUSTAKAAN" dalam file ".def" yang diberikan. [Ini
opsi khusus untuk port tautan yang ditargetkan i386 PE]

--aktifkan-nama-bagian-panjang
--nonaktifkan-nama-bagian-panjang
Varian PE dari format objek COFF menambahkan ekstensi yang
mengizinkan penggunaan nama bagian yang lebih panjang dari delapan karakter,
batas normal untuk COFF. Secara default, nama-nama ini hanya diperbolehkan di
file objek, karena gambar yang dapat dieksekusi yang ditautkan sepenuhnya tidak membawa
Tabel string COFF diperlukan untuk mendukung nama yang lebih panjang. Sebagai GNU
ekstensi, dimungkinkan untuk mengizinkan penggunaannya dalam gambar yang dapat dieksekusi
juga, atau untuk (mungkin sia-sia!) melarangnya dalam objek
file, dengan menggunakan dua opsi ini. Gambar yang dapat dieksekusi dihasilkan
dengan nama bagian yang panjang ini sedikit tidak standar, membawa
seperti yang mereka lakukan pada tabel string, dan dapat menghasilkan keluaran yang membingungkan ketika
diperiksa dengan alat non-GNU PE-aware, seperti file viewer dan
dumper Namun, GDB bergantung pada penggunaan nama bagian panjang PE
untuk menemukan bagian informasi debug Dwarf-2 dalam gambar yang dapat dieksekusi
saat runtime, dan jika tidak ada opsi yang ditentukan pada perintah-
baris, ld akan mengaktifkan nama bagian yang panjang, mengesampingkan default dan
perilaku yang benar secara teknis, ketika menemukan adanya debug
informasi saat menautkan gambar yang dapat dieksekusi dan tidak melucuti
simbol. [Opsi ini berlaku untuk semua port target PE dari
penghubung]

--aktifkan-stdcall-fixup
--disable-stdcall-fixup
Jika tautan menemukan simbol yang tidak dapat diselesaikan, ia akan mencoba
untuk melakukan "pengautan kabur" dengan mencari simbol lain yang ditentukan yang
hanya berbeda dalam format nama simbol (cdecl vs stdcall)
dan akan menyelesaikan simbol itu dengan menautkan ke kecocokan. Sebagai contoh,
simbol yang tidak ditentukan "_foo" mungkin ditautkan ke fungsi
"_foo@12", atau simbol yang tidak ditentukan "_bar@16" mungkin ditautkan ke
fungsi "_bar". Ketika linker melakukan ini, ia mencetak peringatan,
karena biasanya gagal menautkan, tetapi terkadang mengimpor
perpustakaan yang dihasilkan dari dll pihak ketiga mungkin memerlukan fitur ini untuk
bisa digunakan. Jika Anda menentukan --aktifkan-stdcall-fixup, fitur ini adalah
diaktifkan sepenuhnya dan peringatan tidak dicetak. Jika Anda menentukan
--disable-stdcall-fixup, fitur ini dinonaktifkan dan semacamnya
ketidaksesuaian dianggap sebagai kesalahan. [Opsi ini khusus
ke port tautan yang ditargetkan i386 PE]

--memimpin-garis bawah
--tidak ada garis bawah utama
Untuk sebagian besar target, awalan simbol default adalah garis bawah dan adalah
didefinisikan dalam deskripsi target. Dengan opsi ini dimungkinkan untuk
nonaktifkan/aktifkan awalan simbol garis bawah default.

--ekspor-semua-simbol
Jika diberikan, semua simbol global dalam objek yang digunakan untuk membangun DLL
akan diekspor oleh DLL. Perhatikan bahwa ini adalah default jika
jika tidak, tidak akan ada simbol yang diekspor. Ketika simbol adalah
diekspor secara eksplisit melalui file DEF atau diekspor secara implisit melalui
atribut fungsi, defaultnya adalah tidak mengekspor yang lain
kecuali opsi ini diberikan. Perhatikan bahwa simbol "DllMain@12",
"DllEntryPoint@0", "DllMainCRTStartup@12", dan "impure_ptr" akan
tidak secara otomatis diekspor. Juga, simbol yang diimpor dari yang lain
DLL tidak akan diekspor kembali, begitu pula simbol yang menentukan DLL
tata letak internal seperti yang dimulai dengan "_head_" atau berakhir
dengan "_iname". Selain itu, tidak ada simbol dari "libgcc", "libstd++",
"libmingw32", atau "crtX.o" akan diekspor. Simbol yang namanya
mulai dengan "__rtti_" atau "__builtin_" tidak akan diekspor, untuk membantu
dengan C++ DLL. Akhirnya, ada daftar ekstensif cygwin-
simbol pribadi yang tidak diekspor (jelas, ini berlaku pada
saat membangun DLL untuk target cygwin). Pengecualian cygwin ini adalah:
"_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", dan "lingkungan". [Pilihan ini
khusus untuk port linker yang ditargetkan i386 PE]

--kecuali-simbol simbol,simbol...
Menentukan daftar simbol yang seharusnya tidak otomatis
diekspor. Nama simbol dapat dibatasi dengan koma atau titik dua.
[Opsi ini khusus untuk port target i386 PE dari
penghubung]

--kecualikan-semua-simbol
Menentukan tidak ada simbol yang harus diekspor secara otomatis. [Ini
opsi khusus untuk port tautan yang ditargetkan i386 PE]

--penyelarasan file
Tentukan perataan file. Bagian dalam file akan selalu dimulai
di offset file yang merupakan kelipatan dari angka ini. Default ini
hingga 512. [Opsi ini khusus untuk port target i386 PE dari
penghubung]

--tumpukan cadangan
--tumpukan cadangan,melakukan
Tentukan jumlah byte memori yang akan dicadangkan (dan opsional
commit) untuk digunakan sebagai heap untuk program ini. Standarnya adalah 1MB
dicadangkan, 4K berkomitmen. [Opsi ini khusus untuk i386 PE
port penaut yang ditargetkan]

--gambar-dasar nilai
penggunaan nilai sebagai alamat dasar program Anda atau dll. Ini adalah
lokasi memori terendah yang akan digunakan saat program Anda atau dll
dimuat. Untuk mengurangi kebutuhan untuk pindah dan meningkatkan kinerja
dari dll Anda, masing-masing harus memiliki alamat dasar yang unik dan bukan
tumpang tindih dengan dll lainnya. Standarnya adalah 0x400000 untuk executable,
dan 0x10000000 untuk dll. [Opsi ini khusus untuk i386 PE
port penaut yang ditargetkan]

--bunuh-at
Jika diberikan, sufiks stdcall (@nn) akan dilucuti dari simbol
sebelum mereka diekspor. [Opsi ini khusus untuk i386 PE
port penaut yang ditargetkan]

--besar-alamat-sadar
Jika diberikan, bit yang sesuai di bidang "Karakteristik" dari
Header COFF diatur untuk menunjukkan bahwa dukungan yang dapat dieksekusi ini
alamat virtual lebih besar dari 2 gigabyte. Ini harus digunakan dalam
hubungannya dengan /3GB atau /USERVA=nilai megabyte beralih di
"[sistem operasi]" dari BOOT.INI. Jika tidak, bagian ini
tidak berpengaruh. [Opsi ini khusus untuk port target PE dari
penghubung]

--nonaktifkan-alamat-besar-sadar
Mengembalikan efek dari sebelumnya --besar-alamat-sadar .
Ini berguna jika --besar-alamat-sadar selalu diatur oleh
driver kompiler (misalnya Cygwin gcc) dan yang dapat dieksekusi tidak
mendukung alamat virtual yang lebih besar dari 2 gigabyte. [Pilihan ini
khusus untuk port tautan yang ditargetkan PE]

--mayor-image-version nilai
Menetapkan nomor utama dari "versi gambar". Default ke 1.
[Opsi ini khusus untuk port target i386 PE dari
penghubung]

--mayor-os-versi nilai
Menetapkan nomor utama dari "versi os". Default ke 4. [Ini
opsi khusus untuk port tautan yang ditargetkan i386 PE]

--mayor-subsistem-versi nilai
Menetapkan nomor utama dari "versi subsistem". Default ke 4.
[Opsi ini khusus untuk port target i386 PE dari
penghubung]

--minor-gambar-versi nilai
Menyetel jumlah kecil dari "versi gambar". Default ke 0.
[Opsi ini khusus untuk port target i386 PE dari
penghubung]

--minor-os-versi nilai
Menyetel jumlah kecil dari "versi os". Default ke 0. [Ini
opsi khusus untuk port tautan yang ditargetkan i386 PE]

--minor-subsistem-versi nilai
Menyetel jumlah kecil dari "versi subsistem". Default ke 0.
[Opsi ini khusus untuk port target i386 PE dari
penghubung]

--keluaran-def fillet
Linker akan membuat file fillet yang akan berisi file DEF
sesuai dengan DLL yang dihasilkan oleh linker. File DEF ini
(yang seharusnya disebut "*.def") dapat digunakan untuk membuat impor
perpustakaan dengan "dlltool" atau dapat digunakan sebagai referensi untuk
simbol yang diekspor secara otomatis atau implisit. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

--keluar-implib fillet
Linker akan membuat file fillet yang akan berisi impor
lib yang sesuai dengan DLL yang dihasilkan oleh tautan. Impor ini
lib (yang seharusnya disebut "*.dll.a" atau "*.a" dapat digunakan untuk menautkan
klien terhadap DLL yang dihasilkan; perilaku ini memungkinkan
untuk melewati langkah pembuatan perpustakaan impor "dlltool" yang terpisah. [Ini
opsi khusus untuk port tautan yang ditargetkan i386 PE]

--aktifkan-basis gambar-otomatis
--aktifkan-auto-gambar-basis=nilai
Secara otomatis memilih basis gambar untuk DLL, secara opsional memulai
dengan dasar nilai, kecuali jika ditentukan menggunakan "--image-base"
argumen. Dengan menggunakan hash yang dihasilkan dari dllname untuk membuat
basis gambar unik untuk setiap DLL, tabrakan dalam memori dan
relokasi yang dapat menunda eksekusi program dihindari. [Ini
opsi khusus untuk port tautan yang ditargetkan i386 PE]

--nonaktifkan-auto-image-base
Jangan secara otomatis menghasilkan basis gambar yang unik. Jika tidak ada
basis gambar yang ditentukan pengguna ("--image-base") kemudian gunakan platform
bawaan. [Opsi ini khusus untuk port target i386 PE dari
penghubung]

--dll-pencarian-awalan tali
Saat menautkan secara dinamis ke dll tanpa perpustakaan impor, cari
untuk " .dll" dalam preferensi untuk "lib .dll".
Perilaku ini memungkinkan perbedaan yang mudah antara DLL yang dibuat untuk
berbagai "subplatform": asli, cygwin, uwin, pw, dll. Untuk
misalnya, DLL cygwin biasanya menggunakan "--dll-search-prefix=cyg".
[Opsi ini khusus untuk port target i386 PE dari
penghubung]

--aktifkan-impor otomatis
Lakukan penautan canggih "_symbol" ke "__imp__symbol" untuk DATA
impor dari DLL, dan buat simbol thunking yang diperlukan saat
membangun perpustakaan impor dengan ekspor DATA tersebut. Catatan: Penggunaan
ekstensi 'impor otomatis' akan menyebabkan bagian teks dari
file gambar yang akan dibuat dapat ditulis. Ini tidak sesuai dengan PE-
Spesifikasi format COFF diterbitkan oleh Microsoft.

Catatan - penggunaan ekstensi 'impor otomatis' juga akan menyebabkan hanya baca
data yang biasanya akan ditempatkan ke bagian .rdata menjadi
ditempatkan ke bagian .data sebagai gantinya. Ini untuk bekerja
seputar masalah dengan const yang dijelaskan di sini:
http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

Menggunakan 'impor otomatis' umumnya akan 'berfungsi' -- tetapi terkadang Anda
mungkin melihat pesan ini:

"variabel ' ' tidak dapat diimpor secara otomatis. Harap baca
dokumentasi untuk "--enable-auto-import" ld untuk detailnya.

Pesan ini terjadi ketika beberapa (sub)ekspresi mengakses alamat
akhirnya diberikan oleh jumlah dua konstanta (tabel impor Win32
hanya mengizinkan satu). Contoh di mana hal ini dapat terjadi termasuk akses
ke bidang anggota variabel struct yang diimpor dari DLL, juga
seperti menggunakan indeks konstan ke dalam variabel array yang diimpor dari a
DLL. Variabel multikata apa pun (array, struct, long long, dll) dapat
memicu kondisi kesalahan ini. Namun, terlepas dari tepatnya
tipe data dari variabel yang diekspor yang menyinggung, ld akan selalu mendeteksi
itu, mengeluarkan peringatan, dan keluar.

Ada beberapa cara untuk mengatasi kesulitan ini, terlepas dari
tipe data variabel yang diekspor:

Salah satu caranya adalah dengan menggunakan --enable-runtime-pseudo-reloc switch. daun ini
tugas menyesuaikan referensi dalam kode klien Anda untuk runtime
lingkungan, jadi metode ini hanya berfungsi ketika lingkungan runtime
mendukung fitur ini.

Solusi kedua adalah memaksa salah satu 'konstanta' menjadi a
variabel -- yaitu, tidak diketahui dan tidak dapat dioptimalkan pada waktu kompilasi.
Untuk array, ada dua kemungkinan: a) membuat orang yang diindeks (the
alamat array) sebagai variabel, atau b) buat indeks 'konstan' a
variabel. Dengan demikian:

tipe extern extern_array[];
extern_array[1] -->
{ tipe volatil *t=extern_array; t[1] }

or

tipe extern extern_array[];
extern_array[1] -->
{ mudah menguap int t=1; extern_array[t] }

Untuk struct (dan sebagian besar tipe data multiword lainnya) satu-satunya pilihan
adalah membuat struct itu sendiri (atau long long, atau ...)
variabel:

struct eksternal s extern_struct;
extern_struct.field -->
{ struct volatil s *t=&extern_struct; t->bidang }

or

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

Metode ketiga untuk mengatasi kesulitan ini adalah dengan meninggalkan
'impor otomatis' untuk simbol yang menyinggung dan tandai dengan
"__declspec(dllimport)". Namun, dalam praktiknya yang membutuhkan penggunaan
compile-time #defines untuk menunjukkan apakah Anda sedang membangun DLL,
membangun kode klien yang akan menautkan ke DLL, atau hanya
membangun/menautkan ke perpustakaan statis. Dalam menentukan pilihan
antara berbagai metode untuk menyelesaikan 'alamat langsung dengan'
masalah offset konstan, Anda harus mempertimbangkan tipikal dunia nyata
pemakaian:

Asli:

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

Solusi 1:

--foo.h
eksternal int arr[];
--foo.c
#sertakan "foo.h"
batal main(int argc, char **argv){
/* Solusi ini untuk win32 dan cygwin; jangan "mengoptimalkan" */
volatil int *parr = arr;
printf("%d\n",parr[1]);
}

Solusi 2:

--foo.h
/* Catatan: ekspor otomatis diasumsikan (tidak ada __declspec(dllexport)) */
#if (didefinisikan(_WIN32) || didefinisikan(__CYGWIN__)) && \
!(didefinisikan(FOO_BUILD_DLL) || didefinisikan(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#lain
#tentukan FOO_IMPORT
#berakhir jika
eksternal FOO_IMPORT int arr[];
--foo.c
#sertakan "foo.h"
batal main(int argc, char **argv){
printf("%d\n",arr[1]);
}

Cara keempat untuk menghindari masalah ini adalah dengan mengkode ulang perpustakaan Anda ke
menggunakan antarmuka fungsional daripada antarmuka data untuk
variabel yang menyinggung (mis set_foo() dan dapatkan_foo() pengakses
fungsi). [Opsi ini khusus untuk port target i386 PE
penghubung]

--nonaktifkan-impor otomatis
Jangan mencoba melakukan penautan canggih "_symbol" ke
"__imp__symbol" untuk impor DATA dari DLL. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

--aktifkan-runtime-pseudo-reloc
Jika kode Anda berisi ekspresi yang dijelaskan dalam --enable-auto-import
bagian, yaitu, impor DATA dari DLL dengan offset bukan nol, ini
switch akan membuat vektor 'runtime pseudo relocations' yang
dapat digunakan oleh lingkungan runtime untuk menyesuaikan referensi seperti itu
data dalam kode klien Anda. [Opsi ini khusus untuk i386 PE
port penaut yang ditargetkan]

--nonaktifkan-runtime-pseudo-reloc
Jangan membuat relokasi semu untuk impor DATA offset non-nol
dari DLL. [Opsi ini khusus untuk port target i386 PE
penghubung]

--aktifkan-ekstra-pe-debug
Tampilkan info debug tambahan terkait dengan auto-import simbol thunking.
[Opsi ini khusus untuk port target i386 PE dari
penghubung]

--bagian-penyelarasan
Mengatur perataan bagian. Bagian dalam memori akan selalu dimulai
di alamat yang merupakan kelipatan dari nomor ini. Default untuk
0x1000. [Opsi ini khusus untuk port target i386 PE dari
penghubung]

--tumpukan cadangan
--tumpukan cadangan,melakukan
Tentukan jumlah byte memori yang akan dicadangkan (dan opsional
commit) untuk digunakan sebagai stack untuk program ini. Standarnya adalah 2MB
dicadangkan, 4K berkomitmen. [Opsi ini khusus untuk i386 PE
port penaut yang ditargetkan]

--subsistem yang
--subsistem yang:utama
--subsistem yang:utama.minor
Menentukan subsistem di mana program Anda akan dijalankan. NS
nilai hukum untuk yang adalah "asli", "jendela", "konsol", "posix",
dan "xbox". Anda juga dapat mengatur versi subsistem secara opsional.
Nilai numerik juga diterima untuk yang. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

Opsi berikut mengatur flag di bidang "DllCharacteristics"
dari header file PE: [Opsi ini khusus untuk PE yang ditargetkan
port penghubung]

--entropi-va tinggi
Gambar kompatibel dengan pengacakan tata letak ruang alamat 64-bit
(ASLR).

--dinamis dasar
Alamat dasar gambar dapat dipindahkan menggunakan tata letak ruang alamat
pengacakan (ASLR). Fitur ini diperkenalkan dengan MS Windows
Vista untuk target PE i386.

--forceinteg
Pemeriksaan integritas kode diberlakukan.

--nxcompat
Gambar kompatibel dengan Pencegahan Eksekusi Data. Ini
fitur diperkenalkan dengan MS Windows XP SP2 untuk target PE i386.

--tanpa-isolasi
Meskipun gambar memahami isolasi, jangan mengisolasi gambar.

--tidak-seh
Gambar tidak menggunakan SEH. Tidak ada penangan SE yang dapat dipanggil dari ini
gambar.

--tidak mengikat
Jangan ikat gambar ini.

--wdmdriver
Pengemudi menggunakan Model Driver MS Windows.

--tsaware
Gambar adalah Terminal Server sadar.

--masukkan-stempel waktu
--tidak ada-masukkan stempel waktu
Masukkan stempel waktu nyata ke dalam gambar. Ini defaultnya
perilaku karena cocok dengan kode lama dan itu berarti bahwa gambar
akan bekerja dengan alat berpemilik lainnya. Masalah dengan ini
defaultnya adalah itu akan menghasilkan gambar yang sedikit berbeda
dihasilkan setiap kali sumber yang sama dihubungkan. Pilihan
--tidak ada-masukkan stempel waktu dapat digunakan untuk memasukkan nilai nol untuk
timestamp, ini memastikan bahwa binari dihasilkan dari identik
sumber akan membandingkan identik.

Target uClinux C6X menggunakan format biner yang disebut DSBT untuk mendukung
perpustakaan bersama. Setiap perpustakaan bersama dalam sistem harus memiliki
indeks unik; semua executable menggunakan indeks 0.

--ukuran dsbt ukuran
Opsi ini menetapkan jumlah entri dalam DSBT saat ini
perpustakaan yang dapat dieksekusi atau dibagikan ke ukuran. Standarnya adalah membuat
tabel dengan 64 entri.

--dsbt-indeks indeks
Opsi ini menetapkan indeks DSBT dari executable atau shared saat ini
perpustakaan untuk indeks. Standarnya adalah 0, yang sesuai untuk
menghasilkan executable. Jika perpustakaan bersama dibuat dengan
Indeks DSBT dari 0, reloc "R_C6000_DSBT_INDEX" disalin ke
file keluaran.

Grafik --tidak ada-penggabungan-exidx-entri sakelar menonaktifkan penggabungan
entri exidx yang berdekatan dalam info pelonggaran bingkai.

Linker 68HC11 dan 68HC12 mendukung opsi khusus untuk mengontrol
pemetaan switching bank memori dan pembuatan kode trampolin.

--tanpa trampolin
Opsi ini menonaktifkan pembuatan trampolin. Secara default
trampolin dihasilkan untuk setiap fungsi jauh yang disebut using
instruksi "jsr" (ini terjadi ketika pointer ke fungsi jauh
telah diambil).

--jendela-bank nama
Opsi ini menunjukkan kepada penaut nama wilayah memori
dalam MEMORY spesifikasi yang menjelaskan jendela bank memori.
Definisi wilayah tersebut kemudian digunakan oleh penghubung untuk menghitung
paging dan alamat di dalam jendela memori.

Opsi berikut didukung untuk mengontrol penanganan GOT
generasi saat menautkan untuk target 68K.

--dapat=mengetik
Opsi ini memberi tahu linker skema pembuatan GOT mana yang akan digunakan.
mengetik harus menjadi salah satu tunggal, negatif, banyak or target. Forum
informasi lebih lanjut lihat entri Info untuk ld.

Opsi berikut didukung untuk mengontrol instruksi microMIPS:
generasi saat menautkan untuk target MIPS.

--insn32
--tidak-insn32
Opsi ini mengontrol pilihan instruksi microMIPS yang digunakan dalam
kode yang dihasilkan oleh linker, seperti yang ada di PLT atau lazy
bertopik mengikat, atau dalam relaksasi. Jika --insn32 digunakan, lalu
linker hanya menggunakan pengkodean instruksi 32-bit. Secara default atau jika
--tidak-insn32 digunakan, semua pengkodean instruksi digunakan, termasuk:
yang 16-bit jika memungkinkan.

LINGKUNGAN


Anda dapat mengubah perilaku ld dengan variabel lingkungan
"GNUTARGET", "LDEMULATION" dan "COLLECT_NO_DEMANGLE".

"GNUTARGET" menentukan format objek file input jika Anda tidak menggunakan -b
(atau sinonimnya --format). Nilainya harus menjadi salah satu nama BFD
untuk format masukan. Jika tidak ada "GNUTARGET" di lingkungan, ld
menggunakan format alami dari target. Jika "GNUTARGET" disetel ke
"default" kemudian BFD mencoba menemukan format input dengan memeriksa
file masukan biner; metode ini sering berhasil, tetapi ada potensi
ambiguitas, karena tidak ada metode untuk memastikan bahwa angka ajaib
digunakan untuk menentukan format file objek yang unik. Namun,
prosedur konfigurasi untuk BFD pada setiap sistem menempatkan konvensional
format untuk sistem itu terlebih dahulu dalam daftar pencarian, jadi ambiguitasnya adalah
diselesaikan dalam mendukung konvensi.

"LDEMULATION" menentukan emulasi default jika Anda tidak menggunakan -m
pilihan. Emulasi dapat mempengaruhi berbagai aspek perilaku linker,
khususnya skrip tautan default. Anda dapat membuat daftar yang tersedia
emulasi dengan --bertele-tele or -V pilihan. jika -m pilihan tidak
digunakan, dan variabel lingkungan "LDEMULASI" tidak ditentukan,
emulasi default tergantung pada bagaimana linker dikonfigurasi.

Biasanya, linker akan default ke simbol demangling. Namun, jika
"COLLECT_NO_DEMANGLE" diatur di lingkungan, maka akan default
untuk tidak merusak simbol. Variabel lingkungan ini digunakan dalam a
cara yang sama oleh program pembungkus linker "gcc". Defaultnya mungkin
ditimpa oleh --demangle dan --tanpa-demangle Pilihan.

Gunakan i686-linux-gnu-ld online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

  • 1
    MSYS2
    MSYS2
    MSYS2 adalah kumpulan alat dan
    perpustakaan menyediakan Anda dengan
    lingkungan yang mudah digunakan untuk membangun,
    menginstal dan menjalankan Windows asli
    perangkat lunak. Ini men...
    Unduh MSYS2.dll
  • 2
    libjpeg-turbo
    libjpeg-turbo
    libjpeg-turbo adalah codec gambar JPEG
    yang menggunakan instruksi SIMD (MMX, SSE2,
    NEON, AltiVec) untuk mempercepat baseline
    Kompresi dan dekompresi JPEG aktif
    x86, x8...
    Unduh libjpeg-turbo.dll
  • 3
    Pengelola Unduhan Xtreme
    Pengelola Unduhan Xtreme
    Proyek ini memiliki rumah baru sekarang:
    https://xtremedownloadmanager.com/ For
    pengembang:
    https://github.com/subhra74/xdm Xtreme
    Download Manager adalah alat yang ampuh untuk...
    Unduh Pengelola Unduhan Xtreme
  • 4
    TTGO VGA32 Lite
    TTGO VGA32 Lite
    Fitur: resolusi rendah 4:3 dan 16:9
    Keluaran VGAKeyboard dan mouse PS/2
    antarmuka pengguna berbasis inputText (TUI)
    dengan manajer dialog Unicode parsial
    dukunganSlave di...
    Unduh TTGO VGA32 Lite
  • 5
    Bootloader EFI semanggi
    Bootloader EFI semanggi
    Proyek telah pindah ke
    https://github.com/CloverHackyColor/CloverBootloader..
    Fitur: Boot macOS, Windows, dan Linux
    dalam UEFI atau mode lama di Mac atau PC dengan
    UE...
    Unduh bootloader Clover EFI
  • 6
    bersaturpms
    bersaturpms
    Bergabunglah dengan kami di Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    Aktifkan repositori URPMS di . Anda
    sistem -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    Unduh unitedrpms.dll
  • Lebih banyak lagi »

Perintah Linux

Ad