InggrisPerancisSpanyol

Ad


favorit OnWorks

h8300-hms-ld - Online di Cloud

Jalankan h8300-hms-ld di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

Ini adalah perintah h8300-hms-ld yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


ld - Menggunakan LD, penghubung GNU

RINGKASAN


aku [Pilihan] file objek ...

DESKRIPSI


ld menggabungkan sejumlah objek dan file arsip, memindahkan datanya dan mengikat simbol
referensi. Biasanya langkah terakhir dalam mengkompilasi program adalah menjalankan ld.

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

Halaman manual ini tidak menjelaskan bahasa perintah; lihat ld entri di "info", atau the
manual ld: tautan GNU, 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 berbagai format---untuk
contoh, COFF atau "a.out". Format yang berbeda dapat dihubungkan bersama untuk menghasilkan apapun
jenis file objek yang tersedia.

Selain fleksibilitasnya, tautan GNU lebih membantu daripada tautan lain dalam menyediakan
informasi diagnostik. Banyak linker yang langsung mengabaikan eksekusi setelah menemukan
kesalahan; bila memungkinkan, ld terus mengeksekusi, memungkinkan Anda untuk mengidentifikasi kesalahan lainnya
(atau, dalam beberapa kasus, untuk mendapatkan file keluaran meskipun ada kesalahan).

Penghubung GNU ld dimaksudkan untuk mencakup berbagai situasi, dan agar kompatibel
mungkin dengan linker lainnya. Akibatnya, Anda memiliki banyak pilihan untuk mengendalikannya
tingkah laku.

PILIHAN


Linker mendukung sejumlah besar opsi baris perintah, tetapi dalam praktik sebenarnya hanya sedikit dari mereka
digunakan dalam konteks tertentu. Misalnya, sering menggunakan ld adalah untuk menghubungkan
file objek Unix standar pada sistem Unix standar yang didukung. Pada sistem seperti itu, untuk
tautkan file "hello.o":

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

Ini menceritakan ld untuk menghasilkan file bernama keluaran sebagai hasil dari menautkan file
"/lib/crt0.o" dengan "hello.o" dan perpustakaan "libc.a", yang akan datang dari standar
direktori pencarian. (Lihat pembahasan -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 di
titik di mana opsi muncul di baris perintah, relatif terhadap file objek dan
opsi berkas lainnya. Mengulangi opsi non-file dengan argumen yang berbeda akan memiliki
tidak ada efek lebih lanjut, atau mengesampingkan kejadian sebelumnya (yang lebih jauh ke kiri pada perintah
baris) dari opsi itu. Opsi yang dapat ditentukan secara bermakna lebih dari satu kali adalah
dicatat dalam uraian di bawah ini.

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

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

Jika penaut tidak dapat mengenali format file objek, ia akan menganggap bahwa itu adalah
skrip penghubung. Skrip yang ditentukan dengan cara ini menambah skrip penghubung utama yang digunakan untuk
tautan (baik skrip tautan default atau yang ditentukan dengan menggunakan -T). Ini
fitur memungkinkan penaut untuk menautkan ke file yang tampak seperti objek atau
arsip, tetapi sebenarnya hanya mendefinisikan beberapa nilai simbol, atau menggunakan "INPUT" atau "GROUP" untuk
memuat objek lain. Perhatikan bahwa menentukan skrip dengan cara ini hanya menambah main
skrip tautan; menggunakan -T opsi untuk mengganti skrip tautan default sepenuhnya.

Untuk opsi yang namanya satu huruf, argumen opsi harus mengikuti
surat opsi tanpa mengintervensi spasi, atau diberikan sebagai argumen terpisah
segera mengikuti opsi yang mengharuskannya.

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

Argumen untuk opsi multi-huruf harus dipisahkan dari nama opsi dengan tanda
tanda sama dengan, atau diberikan sebagai argumen terpisah segera setelah opsi itu
membutuhkan mereka. Sebagai contoh, --simbol-jejak foo dan --trace-simbol=foo adalah setara.
Singkatan unik dari nama opsi beberapa huruf diterima.

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

gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup

Ini penting, karena jika tidak, program driver kompiler dapat secara diam-diam menjatuhkan
opsi tautan, menghasilkan tautan yang buruk.

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

-akata kunci
Opsi ini didukung untuk kompatibilitas HP/UX. NS kata kunci argumen harus salah satu dari
senar arsip, berbagi, atau kegagalan. -arsip secara fungsional setara dengan
-Bstatis, dan dua kata kunci lainnya secara fungsional setara dengan -Bdinamis. Ini
opsi dapat digunakan beberapa kali.

-Aarsitektur
--arsitektur=arsitektur
Dalam rilis saat ini dari ld, opsi ini hanya berguna untuk keluarga Intel 960
ilmu bangunan. Karena ld konfigurasi, arsitektur argumen mengidentifikasi
arsitektur tertentu dalam keluarga 960, memungkinkan beberapa perlindungan dan memodifikasi
jalur pencarian arsip-pustaka.

Rilis mendatang dari ld dapat mendukung fungsionalitas serupa untuk arsitektur lain
keluarga.

-b Masukkan format
--format=Masukkan format
ld dapat dikonfigurasi untuk mendukung lebih dari satu jenis file objek. Jika Anda ld is
dikonfigurasi dengan cara ini, Anda dapat menggunakan -b opsi untuk menentukan format biner untuk input
file objek yang mengikuti opsi ini pada baris perintah. Bahkan ketika ld dikonfigurasi
untuk mendukung format objek alternatif, Anda biasanya tidak perlu menentukan ini, karena ld
harus dikonfigurasi untuk mengharapkan sebagai format input default format yang paling biasa pada masing-masing
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 biner yang tidak biasa
format. Anda juga bisa menggunakan -b untuk beralih format secara eksplisit (saat menautkan file objek
format yang berbeda), dengan memasukkan -b Masukkan format sebelum setiap grup file objek
dalam 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 file skrip yang ditulis dalam
alternatif, bahasa perintah terbatas, dijelaskan dalam File Skrip Kompatibel MRI
bagian dari dokumentasi GNU ld. Perkenalkan file skrip MRI dengan opsi -c; menggunakan
itu -T opsi untuk menjalankan skrip tautan yang ditulis untuk tujuan umum ld scripting
bahasa. Jika File MRI-cmd tidak ada, ld mencarinya di direktori yang ditentukan
oleh siapa saja -L Pilihan.

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

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

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

-E
--ekspor-dinamis
Saat membuat executable yang terhubung secara dinamis, tambahkan semua simbol ke simbol dinamis
meja. Tabel simbol dinamis adalah kumpulan simbol yang terlihat dari dinamis
objek pada saat dijalankan.

Jika Anda tidak menggunakan opsi ini, tabel simbol dinamis biasanya hanya berisi
simbol-simbol yang dirujuk oleh beberapa objek dinamis yang disebutkan dalam tautan.

Jika Anda menggunakan "dlopen" untuk memuat objek dinamis yang perlu merujuk kembali ke simbol
ditentukan oleh program, daripada beberapa objek dinamis lainnya, maka Anda mungkin akan
perlu menggunakan opsi ini saat menautkan program itu sendiri.

Anda juga dapat menggunakan skrip versi untuk mengontrol simbol apa yang harus ditambahkan ke
tabel simbol dinamis jika format output mendukungnya. Lihat deskripsi dari
--versi-skrip di @ref{VERSI}.

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

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

-f
--bantu nama
Saat membuat objek bersama ELF, setel bidang DT_AUXILIARY internal ke
nama yang ditentukan. Ini memberitahu linker dinamis bahwa tabel simbol yang dibagikan
objek harus digunakan sebagai filter tambahan pada tabel simbol objek yang dibagikan
nama.

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

Opsi ini dapat ditentukan lebih dari sekali. Entri DT_AUXILIARY akan dibuat
dalam urutan di mana mereka muncul di baris perintah.

-F nama
--Saring nama
Saat membuat objek bersama ELF, setel bidang DT_FILTER internal ke yang ditentukan
nama. Ini memberitahu linker 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 ke objek filter ini, maka, saat Anda menjalankan
program, linker dinamis akan melihat bidang DT_FILTER. Penaut dinamis akan
menyelesaikan simbol sesuai dengan tabel simbol objek filter seperti biasa, tetapi itu
akan benar-benar menautkan ke definisi yang ditemukan di objek bersama nama. Demikianlah
objek filter dapat digunakan untuk memilih subset dari simbol yang disediakan oleh objek
nama.

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

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

-g Diabaikan. Disediakan untuk kompatibilitas dengan alat lain.

-Gnilai
--ukuran gps=nilai
Atur ukuran maksimum objek yang akan dioptimalkan menggunakan register GP ke ukuran. Ini
hanya bermakna untuk format file objek seperti MIPS ECOFF yang mendukung put
benda besar dan kecil menjadi bagian yang berbeda. Ini diabaikan untuk objek lain
format file.

-hnama
-namakamu=nama
Saat membuat objek bersama ELF, setel bidang DT_SONAME internal ke yang ditentukan
nama. Ketika executable ditautkan dengan objek bersama yang memiliki bidang DT_SONAME,
kemudian ketika executable dijalankan, tautan dinamis akan mencoba memuat yang dibagikan
objek yang ditentukan oleh bidang DT_SONAME daripada menggunakan nama file yang diberikan kepada
penghubung.

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

-init nama
Saat membuat objek yang dapat dieksekusi atau dibagikan ELF, panggil NAME saat objek yang dapat dieksekusi atau
objek bersama dimuat, dengan mengatur DT_INIT ke alamat fungsi. Oleh
default, linker menggunakan "_init" sebagai fungsi untuk memanggil.

-larsip
--perpustakaan=arsip
Tambahkan file arsip arsip ke daftar file yang akan ditautkan. Opsi ini dapat digunakan kapan saja
berkali-kali. ld akan mencari daftar jalurnya untuk kemunculan "libarsip.a" untuk
setiap arsip ditentukan.

Pada sistem yang mendukung perpustakaan bersama, ld juga dapat mencari perpustakaan dengan
ekstensi selain ".a". Khususnya, pada sistem ELF dan SunOS, ld akan mencari
direktori untuk perpustakaan dengan ekstensi ".so" sebelum mencari perpustakaan dengan
ekstensi dari ".a". Menurut konvensi, ekstensi ".so" menunjukkan perpustakaan bersama.

Penaut akan mencari arsip hanya sekali, di lokasi yang ditentukan
baris perintah. Jika arsip mendefinisikan simbol yang tidak terdefinisi di beberapa objek
yang muncul sebelum arsip di baris perintah, tautan akan menyertakan
file yang sesuai dari arsip. Namun, simbol yang tidak ditentukan dalam suatu objek
muncul nanti di baris perintah tidak akan menyebabkan tautan 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 pada AIX, perhatikan bahwa ini berbeda dari perilaku penaut AIX.

-Lcaridir
--jalur-perpustakaan=caridir
Tambahkan jalur caridir ke daftar jalur yang ld akan mencari perpustakaan arsip dan
ld skrip kontrol. Anda dapat menggunakan opsi ini beberapa kali. Direktori adalah
dicari dalam urutan yang ditentukan pada baris perintah. Direktori
ditentukan pada baris perintah dicari sebelum direktori default. Semua -L
opsi berlaku untuk semua -l opsi, terlepas dari urutan kemunculan opsi.

If caridir dimulai dengan "=", maka "=" akan diganti dengan akar sys awalan, Sebuah
jalur yang ditentukan saat penaut dikonfigurasi.

Kumpulan jalur default yang dicari (tanpa ditentukan dengan -L) tergantung pada
mode emulasi ld digunakan, dan dalam beberapa kasus juga tentang cara konfigurasinya.

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 baris perintah.

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

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

Jika tidak, emulasi default tergantung pada bagaimana linker dikonfigurasi.

-M
--cetak-peta
Cetak peta tautan ke output standar. Peta tautan memberikan informasi tentang
tautan, antara lain sebagai berikut:

* Dimana file objek dan simbol dipetakan ke dalam memori.

* Bagaimana simbol umum dialokasikan.

* Semua anggota arsip disertakan dalam tautan, dengan menyebutkan simbol yang
menyebabkan anggota arsip dibawa masuk.

-n
--najaib
Matikan perataan halaman bagian, dan tandai output sebagai "NMAGIC" jika memungkinkan.

-N
--magic
Atur bagian teks dan data agar dapat dibaca dan ditulis. Juga, jangan meratakan halaman
segmen data, dan nonaktifkan penautan terhadap pustaka bersama. Jika format keluaran
mendukung angka ajaib gaya Unix, tandai output sebagai "OMAGIC". Catatan: Meskipun a
bagian teks yang dapat ditulis 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
menjadi hanya-baca, dan memaksa segmen data untuk disejajarkan dengan halaman. Catatan - opsi ini tidak
tidak mengaktifkan penautan ke perpustakaan bersama. Menggunakan -Bdinamis untuk ini.

-o keluaran
--keluaran=keluaran
penggunaan keluaran sebagai nama untuk program yang diproduksi oleh ld; jika opsi ini tidak
ditentukan, nama keluar digunakan secara default. Perintah skrip "OUTPUT" juga dapat
tentukan nama file keluaran.

-O tingkat
If tingkat adalah nilai numerik yang lebih besar dari nol ld mengoptimalkan keluaran. Ini mungkin
memakan waktu lebih lama secara signifikan dan oleh karena itu mungkin hanya boleh diaktifkan untuk final
biner.

-q
--memancarkan-relokasi
Tinggalkan bagian relokasi dan konten dalam executable yang sepenuhnya terhubung. Tautan pos
alat analisis dan pengoptimalan mungkin memerlukan informasi ini agar dapat bekerja dengan benar
modifikasi dari executable. Ini menghasilkan executable yang lebih besar.

Opsi ini saat ini hanya didukung pada platform ELF.

-r
--dapat dipindahkan
Hasilkan keluaran yang dapat dipindahkan --- yaitu, hasilkan file keluaran yang pada gilirannya dapat berfungsi sebagai
masukan ke ld. Ini sering disebut sebagian menghubungkan. Sebagai efek samping, di lingkungan
yang mendukung angka ajaib Unix standar, opsi ini juga mengatur file output
angka ajaib menjadi "OMAGIC". Jika opsi ini tidak ditentukan, file absolut adalah
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 file output, penautan sebagian
hanya didukung jika file input itu tidak berisi relokasi apa pun. Berbeda
format output dapat memiliki batasan lebih lanjut; misalnya beberapa format berbasis "a.out"
tidak mendukung penautan sebagian 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, tetapi jangan memindahkannya atau menyertakan
itu di keluaran. Ini memungkinkan file keluaran Anda untuk merujuk secara simbolis ke absolut
lokasi memori yang ditentukan dalam program lain. Anda dapat menggunakan opsi ini lebih dari
sekali.

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

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

-S
--strip-debug
Abaikan informasi simbol debugger (tetapi tidak semua simbol) dari file output.

-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 ldskrip tautan default
(daripada menambahkannya), jadi file perintah harus menentukan semua yang diperlukan untuk
menggambarkan file keluaran. Jika file skrip tidak ada di direktori saat ini,
"ld" mencarinya di direktori yang ditentukan oleh sebelumnya -L pilihan. Beberapa
-T pilihan menumpuk.

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

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

--unik[=BAGIAN]
Membuat bagian output terpisah untuk setiap pencocokan bagian input BAGIAN, atau jika
wildcard opsional BAGIAN argumen tidak ada, untuk setiap bagian input yatim piatu. NS
bagian yatim adalah salah satu yang tidak disebutkan secara khusus dalam skrip tautan. Anda dapat menggunakan ini
opsi beberapa kali pada baris perintah; Ini mencegah penggabungan input yang normal
bagian dengan nama yang sama, mengesampingkan penetapan bagian keluaran 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. Untuk sebagian besar target, ini semua adalah simbol lokal yang
nama dimulai dengan L.

-y simbol
--simbol-jejak=simbol
Cetak nama setiap file tertaut di mana simbol muncul. Opsi ini dapat diberikan
berapa kali. Pada banyak sistem, perlu untuk menambahkan garis bawah.

Opsi ini berguna ketika Anda memiliki simbol yang tidak ditentukan di tautan Anda tetapi tidak tahu
dari mana referensi itu berasal.

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

-z kata kunci
Kata kunci yang dikenali adalah:

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

def
Melarang simbol yang tidak ditentukan dalam file objek. Simbol tidak terdefinisi dalam dibagikan
perpustakaan masih diperbolehkan.

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

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

memuatfltr
Menandai objek yang filternya segera diproses saat runtime.

muldef
Memungkinkan beberapa definisi.

nocombreloc.dll
Menonaktifkan penggabungan beberapa bagian relokasi.

nocopyreloc.dll
Menonaktifkan produksi salinan reloc.

tidak default
Menandai objek yang akan diabaikan oleh pencarian dependensi objek ini
jalur pencarian perpustakaan default.

simpul
Menandai objek tidak boleh dibongkar saat runtime.

simpul
Menandai objek tidak tersedia untuk "dlopen".

nodump
Menandai objek tidak dapat dibuang oleh "dldump".

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

asal
Menandai objek mungkin berisi $ORIGIN.

Kata kunci lain diabaikan untuk kompatibilitas Solaris.

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

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

Menggunakan opsi ini memiliki biaya kinerja yang signifikan. Yang terbaik adalah 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. NS
asumsinya adalah bahwa pengguna tahu apa yang mereka lakukan dan dengan sengaja ingin menautkan
dalam file input yang tidak dikenal ini. Ini adalah perilaku default dari linker, sebelumnya
rilis 2.14. Perilaku default dari rilis 2.14 dan seterusnya adalah menolak input tersebut
file, dan sebagainya --menerima-tidak diketahui-input-arch opsi telah ditambahkan untuk mengembalikan yang lama
tingkah laku.

--sesuai kebutuhan
--tidak sesuai kebutuhan
Opsi ini memengaruhi tag ELF DT_NEEDED untuk pustaka dinamis yang disebutkan pada perintah
baris setelah --sesuai kebutuhan pilihan. Biasanya, penaut akan menambahkan tag DT_NEEDED untuk
setiap perpustakaan dinamis yang disebutkan pada baris perintah, terlepas dari apakah perpustakaan
sebenarnya dibutuhkan. --sesuai kebutuhan menyebabkan tag DT_NEEDED hanya dipancarkan untuk
perpustakaan yang memenuhi beberapa referensi simbol dari objek biasa yang tidak terdefinisi
pada titik bahwa perpustakaan itu terhubung. --tidak sesuai kebutuhan mengembalikan default
tingkah laku.

--tambah-diperlukan
--tidak-tambah-perlu
Opsi ini memengaruhi perlakuan pustaka dinamis dari tag ELF DT_NEEDED di
perpustakaan dinamis yang disebutkan pada baris perintah setelah --tidak-tambah-perlu .
Biasanya, penaut akan menambahkan tag DT_NEEDED untuk setiap perpustakaan dinamis dari DT_NEEDED
tag. --tidak-tambah-perlu menyebabkan tag DT_NEEDED tidak akan pernah dipancarkan untuk perpustakaan tersebut
dari tag DT_NEEDED. --tambah-diperlukan mengembalikan perilaku default.

-menegaskan kata kunci
Opsi ini diabaikan untuk kompatibilitas SunOS.

-Bdinamis
-dy
-panggilan_berbagi
Tautan terhadap perpustakaan dinamis. Ini hanya berarti pada platform yang dibagikan
perpustakaan didukung. Opsi ini biasanya default pada platform tersebut. NS
varian yang berbeda dari opsi ini adalah untuk kompatibilitas dengan berbagai sistem. Kamu boleh
gunakan opsi ini beberapa kali di baris perintah: ini memengaruhi pencarian perpustakaan
-l pilihan yang mengikutinya.

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

-Bstatis
-dn
-tidak_dibagikan
-statis
Jangan menautkan ke perpustakaan bersama. Ini hanya berarti pada platform yang
perpustakaan bersama didukung. Varian yang berbeda dari opsi ini adalah untuk
kompatibilitas dengan berbagai sistem. Anda dapat menggunakan opsi ini beberapa kali di
baris perintah: itu memengaruhi pencarian perpustakaan -l pilihan yang mengikutinya. Ini
pilihan juga menyiratkan --unresolved-symbols=laporkan-semua.

-Bsimbolik
Saat membuat perpustakaan bersama, ikat referensi ke simbol global ke definisi
dalam perpustakaan bersama, jika ada. Biasanya, adalah mungkin untuk program yang ditautkan
terhadap perpustakaan bersama untuk mengganti definisi dalam perpustakaan bersama. Ini
opsi ini hanya bermakna pada platform ELF yang mendukung perpustakaan bersama.

--periksa-bagian
--no-check-bagian
Tanya linkernya tidak untuk memeriksa alamat bagian setelah mereka ditugaskan untuk melihat apakah
ada tumpang tindih. Biasanya penaut akan melakukan pemeriksaan ini, dan jika ditemukan
tumpang tindih itu akan menghasilkan pesan kesalahan yang sesuai. Penghubung memang tahu tentang, dan
tidak membuat kelonggaran untuk bagian dalam overlay. Perilaku default dapat dipulihkan
dengan menggunakan sakelar baris perintah --periksa-bagian.

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

Format tabel sengaja dibuat sederhana, agar mudah diolah oleh
naskah jika perlu. Simbol dicetak, diurutkan berdasarkan nama. Untuk setiap simbol,
daftar nama file diberikan. Jika simbol didefinisikan, file pertama yang terdaftar adalah
lokasi definisi. File yang tersisa berisi referensi ke simbol.

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

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

--defsym simbol=ekspresi
Buat simbol global dalam file output, yang berisi alamat absolut yang diberikan oleh
ekspresi. Anda dapat menggunakan opsi ini sebanyak yang diperlukan untuk menentukan kelipatan
simbol di baris perintah. Bentuk aritmatika terbatas didukung untuk
ekspresi dalam konteks ini: Anda dapat memberikan konstanta heksadesimal atau nama an
simbol yang ada, atau gunakan "+" dan "-" untuk menambah atau mengurangi konstanta heksadesimal atau
simbol. Jika Anda membutuhkan ekspresi yang lebih rumit, pertimbangkan untuk menggunakan perintah linker
bahasa dari naskah. Catatan: seharusnya tidak ada ruang putih di antara simbol, yang
tanda sama dengan (``=''), dan ekspresi.

--demangle[=gaya]
--tanpa-demangle
Opsi ini mengontrol apakah akan mengubah nama simbol dalam pesan kesalahan dan lainnya
keluaran. Ketika linker diperintahkan untuk demangle, ia mencoba untuk menampilkan nama simbol dalam a
mode yang dapat dibaca: itu menghapus garis bawah utama jika digunakan oleh file objek
format, dan mengubah nama simbol C++ yang rusak menjadi nama yang dapat dibaca pengguna. Berbeda
compiler memiliki gaya mangling yang berbeda. Argumen gaya demangling opsional dapat
digunakan untuk memilih gaya demangling yang sesuai untuk kompiler Anda. Penghubung akan
demangle secara default kecuali variabel lingkungan KUMPULKAN_NO_DEMANGLE diatur. Ini
opsi dapat digunakan untuk mengganti default.

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

--peringatan-fatal
Perlakukan semua peringatan sebagai kesalahan.

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

Jika file output tertaut sepenuhnya yang berhasil dibuat tidak memiliki ".exe" atau ".dll"
akhiran, opsi ini memaksa tautan untuk menyalin file keluaran ke salah satu nama yang sama
dengan akhiran ".exe". Opsi ini berguna saat menggunakan makefile Unix yang tidak dimodifikasi pada a
Host Microsoft Windows, karena beberapa versi Windows tidak akan menjalankan gambar kecuali jika
diakhiri dengan akhiran ".exe".

--no-gc-bagian
--gc-bagian
Aktifkan pengumpulan sampah dari bagian input yang tidak digunakan. Itu diabaikan pada target yang melakukannya
tidak mendukung opsi ini. Opsi ini tidak kompatibel dengan -r. Perilaku default
(tidak melakukan pengumpulan sampah ini) dapat dipulihkan dengan menentukan
--no-gc-bagian di baris perintah.

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

--target-bantuan
Cetak ringkasan semua opsi spesifik target pada output standar 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 tabel simbol dari
memasukkan file ke dalam memori. Opsi ini memberitahu ld untuk mengoptimalkan penggunaan memori, dengan
membaca ulang tabel simbol seperlunya. Ini mungkin diperlukan jika ld kehabisan
ruang memori saat menghubungkan executable besar.

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

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

--izinkan-shlib-tidak terdefinisi
--tidak-izinkan-shlib-tidak terdefinisi
Mengizinkan (default) atau melarang simbol yang tidak ditentukan di pustaka bersama. Saklar ini
mirip dengan --tidak-tidak terdefinisi kecuali bahwa itu menentukan perilaku ketika
simbol yang tidak ditentukan ada di perpustakaan bersama daripada file objek biasa. memang
tidak mempengaruhi bagaimana simbol yang tidak ditentukan dalam file objek biasa ditangani.

Alasan itu --izinkan-shlib-tidak terdefinisi adalah defaultnya adalah perpustakaan bersama
yang ditentukan pada waktu tautan mungkin tidak sama dengan yang tersedia saat dimuat
waktu, sehingga simbol mungkin benar-benar dapat diselesaikan pada waktu buka. Ditambah ada beberapa
sistem, (misalnya BeOS) di mana simbol yang tidak ditentukan di perpustakaan bersama adalah normal. (Kernel
menambalnya pada waktu buka untuk memilih fungsi mana yang paling sesuai untuk saat ini
Arsitektur. Ini digunakan misalnya untuk memilih memset yang sesuai secara dinamis
fungsi). Rupanya itu juga normal untuk perpustakaan bersama HPPA tidak terdefinisi
simbol.

--no-undefined-versi
Biasanya ketika simbol memiliki versi yang tidak ditentukan, linker akan mengabaikannya. Ini
opsi melarang simbol dengan versi yang tidak ditentukan dan kesalahan fatal akan dikeluarkan
sebagai gantinya.

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

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

--tidak-peringatkan-ketidakcocokan
Biasanya ld akan memberikan kesalahan jika Anda mencoba menautkan file input yang
tidak cocok untuk beberapa alasan, mungkin karena mereka telah dikompilasi untuk yang berbeda
prosesor atau untuk endianness yang berbeda. 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 adalah
tidak pantas.

--tidak-seluruh-arsip
Matikan efek --seluruh-arsip pilihan untuk file arsip berikutnya.

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

-nostdlib
Hanya direktori perpustakaan pencarian yang ditentukan secara eksplisit pada baris perintah. Perpustakaan
direktori yang ditentukan dalam skrip tautan (termasuk skrip tautan yang ditentukan di
baris perintah) diabaikan.

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

-pai
--pic-dapat dieksekusi
Buat posisi yang dapat dieksekusi independen. Saat ini hanya didukung di ELF
platform. Posisi executable independen mirip dengan perpustakaan bersama dalam hal itu
mereka dipindahkan oleh tautan dinamis ke alamat virtual yang dipilih OS
mereka (yang dapat bervariasi antara doa). Seperti executable yang terhubung secara dinamis normal
mereka dapat dieksekusi dan simbol yang didefinisikan dalam yang dapat dieksekusi tidak dapat ditimpa oleh
perpustakaan bersama.

-qajaib
Opsi ini diabaikan untuk kompatibilitas Linux.

-Qy Opsi ini diabaikan untuk kompatibilitas SVR4.

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

Pada beberapa platform, --santai opsi melakukan optimasi global yang menjadi
mungkin ketika linker menyelesaikan pengalamatan dalam program, seperti alamat santai
mode dan mensintesis instruksi baru dalam file objek keluaran.

Pada beberapa platform, optimasi global waktu tautan ini dapat membuat debugging simbolis dari
executable yang dihasilkan tidak mungkin. Hal ini diketahui terjadi pada Matsushita
Keluarga prosesor MN10200 dan MN10300.

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

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

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

Anda hanya dapat menentukan --retain-simbol-file sekali di baris perintah. Itu menimpa -s
dan -S.

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

Grafik -rjalan opsi juga dapat digunakan pada SunOS. Secara default, di SunOS, linker akan
membentuk patch pencarian runtime dari semua -L pilihan yang diberikan. Jika sebuah -rjalan Option
digunakan, jalur pencarian runtime 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 opsi diikuti oleh direktori
nama, bukan nama file, itu 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 pustaka bersama sebagai salah satu file input.

Ketika penaut menemukan ketergantungan seperti itu saat melakukan non-shared, non-relocatable
tautan, itu akan secara otomatis mencoba menemukan perpustakaan bersama yang diperlukan dan memasukkannya
di tautan, jika tidak disertakan secara eksplisit. Dalam kasus seperti itu, -rpath-tautan Option
menentukan set direktori pertama yang akan dicari. NS -rpath-tautan pilihan 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 menimpa jalur pencarian yang mungkin ada
telah sulit dikompilasi ke dalam perpustakaan bersama. Dalam kasus seperti itu dimungkinkan untuk menggunakan
secara tidak sengaja jalur pencarian yang berbeda dari runtime linker akan dilakukan.

Penaut menggunakan jalur pencarian berikut untuk menemukan pustaka bersama yang diperlukan.

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 pilihan termasuk dalam
dieksekusi dan digunakan saat runtime, sedangkan -rpath-tautan pilihan hanya efektif
pada waktu tautan. Ini hanya untuk tautan asli.

3. Pada sistem ELF, jika -rjalan dan opsi "rpath-link" tidak digunakan, cari di
isi variabel lingkungan "LD_RUN_PATH". Ini untuk tautan asli
saja.

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

5. Untuk linker asli, isi variabel lingkungan "LD_LIBRARY_PATH".

6. Untuk linker ELF asli, direktori di "DT_RUNPATH" atau "DT_RPPATH" dari
perpustakaan mencari perpustakaan bersama yang dibutuhkan olehnya. Entri "DT_RPATH" adalah
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 dalam file itu.

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, XCOFF dan SunOS
platform. Di SunOS, penaut akan secara otomatis membuat perpustakaan bersama jika -e
opsi tidak digunakan dan ada simbol yang tidak ditentukan di tautan.

--sort-umum
Opsi ini memberitahu ld untuk mengurutkan simbol-simbol umum berdasarkan ukuran ketika menempatkannya di
bagian keluaran yang sesuai. Pertama datang semua simbol satu byte, lalu keduanya
byte, lalu keempat byte, dan kemudian yang lainnya. Hal ini untuk mencegah kesenjangan
antara simbol karena kendala keselarasan.

--sort-bagian nama
Opsi ini akan menerapkan "SORT_BY_NAME" ke semua pola bagian wildcard di penaut
Script.

--sort-bagian penjajaran
Opsi ini akan menerapkan "SORT_BY_ALIGNMENT" ke semua pola bagian wildcard di
skrip penghubung.

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

--split-demi-relokasi [menghitung]
Mencoba membuat bagian tambahan dalam file keluaran sehingga tidak ada bagian keluaran tunggal di
file berisi lebih dari menghitung relokasi. Ini berguna saat menghasilkan besar
file yang dapat dipindahkan untuk diunduh 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 bekerja dengan format file objek yang tidak
mendukung bagian yang sewenang-wenang. Penaut tidak akan membagi bagian input individual
untuk redistribusi, jadi jika satu bagian input berisi lebih dari menghitung relokasi
satu bagian output akan berisi banyak relokasi. menghitung default ke nilai
32768.

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

--sysroot=direktori
penggunaan direktori sebagai lokasi sysroot, mengesampingkan default waktu konfigurasi.
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 beberapa
penghubung yang ada. Peralihan ini meminta ld untuk menggunakan format tradisional sebagai gantinya.

Misalnya, pada SunOS, ld menggabungkan entri duplikat dalam tabel string simbol. Ini
dapat mengurangi ukuran file output dengan informasi debug lengkap lebih dari 30
persen. Sayangnya, program "dbx" SunOS 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 oleh org. Anda dapat menggunakan
opsi ini sebanyak yang diperlukan untuk menemukan beberapa bagian dalam perintah
line. org harus berupa bilangan bulat heksadesimal tunggal; untuk kompatibilitas dengan linker lain,
Anda dapat menghilangkan yang terkemuka 0x biasanya dikaitkan dengan nilai heksadesimal. Catatan: sana
seharusnya tidak ada ruang putih di antara nama bagian, tanda sama dengan (``=''), dan org.

-Tbs org
-Data org
-Tteks org
Sama seperti --section-start, dengan ".bss", ".data" atau ".text" sebagai nama bagian.

--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 terdapat di perpustakaan bersama, tetapi abaikan saja
jika mereka berasal dari file objek biasa.

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

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

Biasanya tautan akan menghasilkan pesan kesalahan untuk setiap simbol yang belum terselesaikan yang dilaporkan
tapi pilihan --peringatan-belum terselesaikan-simbol dapat mengubah ini menjadi peringatan.

--dll-verbose
--bertele-tele
Tampilkan nomor versi untuk ld dan daftar emulasi linker yang didukung. Menampilkan
file input mana yang bisa dan tidak bisa dibuka. Tampilkan skrip tautan yang digunakan oleh
penghubung.

--versi-skrip=versi-scriptfile
Tentukan nama skrip versi ke linker. Ini biasanya digunakan ketika
membuat perpustakaan bersama untuk menentukan informasi tambahan tentang versi
hierarki untuk perpustakaan yang sedang dibuat. Opsi ini hanya berarti di ELF
platform yang mendukung perpustakaan bersama.

--peringatan-umum
Peringatkan ketika simbol umum digabungkan dengan simbol umum lainnya atau dengan simbol
definisi. Penaut Unix memungkinkan praktik yang agak ceroboh ini, tetapi tautan pada beberapa
sistem operasi lain tidak. Opsi ini memungkinkan Anda menemukan potensi masalah
dari menggabungkan simbol global. Sayangnya, beberapa perpustakaan 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 dengan contoh C:

int i = 1;
Definisi, yang masuk di bagian data yang diinisialisasi dari file output.

luar int i;
Referensi yang tidak ditentukan, yang tidak mengalokasikan ruang. Harus ada
definisi atau simbol umum untuk variabel di suatu tempat.

int i;
Sebuah simbol umum. Jika hanya ada (satu atau lebih) simbol umum untuk suatu variabel,
itu berjalan di area data yang tidak diinisialisasi dari file output. Penghubung bergabung
beberapa simbol umum untuk variabel yang sama menjadi satu simbol. Jika mereka adalah
ukuran yang berbeda, ia mengambil ukuran terbesar. Penghubung mengubah simbol umum
menjadi deklarasi, jika ada definisi dari variabel yang sama.

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

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

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

2. Mengubah simbol umum menjadi referensi, karena definisi selanjutnya untuk
simbol yang dihadapi. Ini sama dengan kasus sebelumnya, kecuali bahwa
simbol ditemukan dalam urutan yang berbeda.

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

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

( ): 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
seperti kasus sebelumnya, kecuali bahwa simbol-simbol tersebut ditemui di tempat yang berbeda
ketertiban.

( ): 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 file objek
format. Untuk format seperti COFF atau ELF, linker tidak dapat mendeteksi penggunaan global
konstruktor.

--peringatkan-beberapa-gp
Peringatkan jika beberapa nilai penunjuk global diperlukan dalam file keluaran. Hanya ini
berarti untuk prosesor tertentu, seperti Alpha. Secara khusus, beberapa prosesor
letakkan konstanta bernilai besar di bagian khusus. Sebuah register khusus (global
pointer) menunjuk ke tengah bagian ini, sehingga konstanta dapat dimuat
efisien melalui mode pengalamatan relatif register-basis. Karena offset di basis-
mendaftar mode relatif tetap dan relatif kecil (misalnya, 16 bit), ini membatasi
ukuran maksimum kolam konstan. Jadi, dalam program besar, seringkali perlu untuk
gunakan beberapa nilai penunjuk global agar dapat mengatasi semua kemungkinan
konstanta. 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 mengacu pada
.

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

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

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

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

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

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

--membungkus simbol
Gunakan fungsi pembungkus untuk simbol. Setiap referensi yang tidak ditentukan ke simbol akan diselesaikan
untuk membungkus_simbol". Setiap referensi yang tidak ditentukan ke "__real_simbol" akan diselesaikan untuk
simbol.

Ini dapat digunakan untuk menyediakan pembungkus untuk fungsi sistem. Fungsi pembungkus
harus disebut "__wrap_simbol". Jika ingin memanggil fungsi sistem, itu harus
panggil "__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, lalu semua panggilan ke "malloc"
akan memanggil fungsi "__wrap_malloc" sebagai gantinya. Panggilan ke "__real_malloc" di
"__wrap_malloc" akan memanggil fungsi "malloc" yang sebenarnya.

Anda mungkin ingin menyediakan fungsi "__real_malloc" juga, sehingga menautkan tanpa
--membungkus pilihan akan berhasil. Jika Anda melakukan ini, Anda seharusnya tidak memasukkan definisi dari
"__real_malloc" dalam file yang sama dengan "__wrap_malloc"; jika Anda melakukannya, assembler mungkin
selesaikan panggilan sebelum tautan memiliki kesempatan untuk membungkusnya ke "malloc".

--aktifkan-tag-baru
--nonaktifkan-dtag-baru
Linker ini dapat membuat tag dinamis baru di ELF. Tetapi sistem ELF yang lebih tua mungkin tidak
mengerti mereka. Jika Anda menentukan --aktifkan-tag-baru, tag dinamis akan dibuat
sesuai kebutuhan. Jika Anda menentukan --nonaktifkan-dtag-baru, tidak ada tag dinamis baru yang akan dibuat.
Secara default, tag dinamis baru tidak dibuat. Perhatikan bahwa opsi itu hanya
tersedia untuk sistem ELF.

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

--mengurangi-memori-overhead
Opsi ini mengurangi kebutuhan memori pada waktu proses ld, dengan mengorbankan penautan
kecepatan. Ini diperkenalkan untuk memilih algoritma O(n^2) lama untuk file peta tautan
generasi, daripada algoritma O(n) baru yang menggunakan sekitar 40% lebih banyak memori untuk
penyimpanan simbol.

Pengaruh lain dari sakelar adalah mengatur ukuran tabel hash default ke 1021, yang
lagi menghemat memori dengan biaya memperpanjang waktu menjalankan linker. Ini tidak dilakukan
namun jika --ukuran hash saklar telah digunakan.

Grafik --mengurangi-memori-overhead switch juga dapat digunakan untuk mengaktifkan tradeoff lainnya di
versi linker yang akan datang.

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

Selain opsi yang umum untuk semua target, linker PE i386 mendukung tambahan
opsi baris perintah yang khusus untuk target PE i386. 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 apa adanya dan juga dengan
akhiran dilucuti. [Opsi ini khusus untuk port penaut i386 PE yang ditargetkan]

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

--dll
Buat DLL alih-alih executable biasa. Anda juga dapat menggunakan -bersama atau tentukan a
"PERPUSTAKAAN" dalam file ".def" yang diberikan. [Opsi ini khusus untuk i386 PE yang ditargetkan
pelabuhan penghubung]

--aktifkan-stdcall-fixup
--disable-stdcall-fixup
Jika tautan menemukan simbol yang tidak dapat diselesaikan, tautan akan mencoba melakukan ``fuzzy
menghubungkan'' 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.
Misalnya, 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 untuk menautkan,
tetapi terkadang perpustakaan impor yang dihasilkan dari dll pihak ketiga mungkin memerlukan fitur ini
untuk dapat digunakan. Jika Anda menentukan --aktifkan-stdcall-fixup, fitur ini diaktifkan sepenuhnya
dan peringatan tidak dicetak. Jika Anda menentukan --disable-stdcall-fixup, fitur ini adalah
dinonaktifkan dan ketidakcocokan tersebut dianggap sebagai kesalahan. [Opsi ini khusus untuk
port tautan yang ditargetkan i386 PE]

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

--kecuali-simbol simbol,simbol...
Menentukan daftar simbol yang tidak boleh diekspor secara otomatis. Simbol
nama dapat dipisahkan dengan koma atau titik dua. [Opsi ini khusus untuk i386 PE
port penaut yang ditargetkan]

--penyelarasan file
Tentukan perataan file. Bagian dalam file akan selalu dimulai pada offset file
yang merupakan kelipatan dari bilangan tersebut. Ini default ke 512. [Opsi ini khusus
ke port tautan yang ditargetkan i386 PE]

--tumpukan cadangan
--tumpukan cadangan,melakukan
Tentukan jumlah memori yang akan dicadangkan (dan komit secara opsional) untuk digunakan sebagai tumpukan untuk
program ini. Standarnya adalah 1Mb dicadangkan, 4K berkomitmen. [Opsi ini khusus untuk
port tautan yang ditargetkan i386 PE]

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

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

--besar-alamat-sadar
Jika diberikan, bit yang sesuai di bidang ``Karakteristik'' dari header COFF adalah
diatur untuk menunjukkan bahwa executable ini mendukung alamat virtual lebih besar dari 2
gigabyte. Ini harus digunakan bersama dengan /3GB atau /USERVA=nilai megabita
beralih di bagian ``[sistem operasi]'' dari BOOT.INI. Jika tidak, bit ini
tidak berpengaruh. [Opsi ini khusus untuk port linker yang ditargetkan PE]

--mayor-image-version nilai
Menyetel nomor utama dari ``versi gambar''. Default ke 1. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

--mayor-os-versi nilai
Menyetel nomor utama dari `` versi os''. Default ke 4. [Opsi ini khusus
ke port tautan yang ditargetkan i386 PE]

--mayor-subsistem-versi nilai
Menetapkan nomor utama dari ``versi subsistem''. Default ke 4. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

--minor-gambar-versi nilai
Menyetel jumlah kecil dari ``versi gambar''. Default ke 0. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

--minor-os-versi nilai
Menyetel jumlah kecil dari `` versi os''. Default ke 0. [Opsi ini khusus
ke port tautan yang ditargetkan i386 PE]

--minor-subsistem-versi nilai
Menyetel jumlah kecil dari ``versi subsistem''. Default ke 0. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

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

--keluar-implib fillet
Linker akan membuat file fillet yang akan berisi lib impor yang sesuai dengan
DLL yang dihasilkan oleh linker. Lib impor ini (yang seharusnya disebut "*.dll.a" atau
"*.a" dapat digunakan untuk menghubungkan klien dengan DLL yang dihasilkan; perilaku ini membuatnya
mungkin untuk melewati langkah pembuatan perpustakaan impor "dlltool" yang terpisah. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

--aktifkan-basis gambar-otomatis
Secara otomatis memilih basis gambar untuk DLL, kecuali jika ditentukan menggunakan
argumen "--image-base". Dengan menggunakan hash yang dihasilkan dari dllname untuk membuat unique
basis gambar untuk setiap DLL, tabrakan dalam memori dan relokasi yang dapat menunda program
eksekusi dihindari. [Opsi ini khusus untuk port target i386 PE dari
penghubung]

--nonaktifkan-auto-image-base
Jangan secara otomatis menghasilkan basis gambar yang unik. Jika tidak ada yang ditentukan pengguna
image base ("--image-base") kemudian gunakan platform default. [Opsi ini khusus
ke port tautan yang ditargetkan i386 PE]

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

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

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

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

Pesan ini terjadi ketika beberapa (sub)ekspresi mengakses alamat yang akhirnya diberikan oleh
jumlah dari dua konstanta (tabel impor Win32 hanya mengizinkan satu). Contoh di mana ini
mungkin terjadi termasuk akses ke bidang anggota variabel struct yang diimpor dari DLL,
serta menggunakan indeks konstan ke dalam variabel array yang diimpor dari DLL. Setiap
variabel multiword (array, struct, long long, dll) dapat memicu kondisi kesalahan ini.
Namun, terlepas dari tipe data yang tepat dari variabel yang diekspor yang melanggar, ld akan
selalu mendeteksinya, mengeluarkan peringatan, dan keluar.

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

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

Solusi kedua adalah memaksa salah satu 'konstanta' menjadi variabel -- yaitu,
tidak diketahui dan tidak dapat dioptimalkan pada waktu kompilasi. Untuk array, ada dua kemungkinan:
a) buat yang diindeks (alamat array) sebagai variabel, atau b) buat indeks 'konstan'
sebuah 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 panjang panjang, 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 mengabaikan 'impor otomatis' untuk
simbol yang menyinggung dan tandai dengan "__declspec(dllimport)". Namun, dalam praktiknya
memerlukan penggunaan #defines waktu kompilasi untuk menunjukkan apakah Anda sedang membangun DLL,
membangun kode klien yang akan menautkan ke DLL, atau hanya membangun/menautkan ke statis
Perpustakaan. Dalam membuat pilihan di antara berbagai metode penyelesaian masalah 'langsung'
mengatasi masalah offset konstan, Anda harus mempertimbangkan penggunaan dunia nyata yang khas:

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)) */
#jika (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 untuk menggunakan fungsi
antarmuka daripada antarmuka data untuk variabel yang menyinggung (mis set_foo() dan
dapatkan_foo() fungsi pengakses). [Opsi ini khusus untuk port target i386 PE
penghubung]

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

--aktifkan-runtime-pseudo-reloc
Jika kode Anda berisi ekspresi yang dijelaskan di bagian --enable-auto-import, yaitu,
Impor DATA dari DLL dengan offset bukan nol, sakelar ini akan membuat vektor
'relokasi semu runtime' yang dapat digunakan oleh lingkungan runtime untuk menyesuaikan
referensi ke data tersebut 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. Ini adalah
default. [Opsi ini khusus untuk port penaut i386 PE yang ditargetkan]

--aktifkan-ekstra-pe-debug
Tampilkan info debug tambahan terkait dengan auto-import simbol thunking. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

--bagian-penyelarasan
Mengatur perataan bagian. Bagian dalam memori akan selalu dimulai pada alamat yang
adalah kelipatan dari bilangan ini. Default ke 0x1000. [Opsi ini khusus untuk
i386 PE port yang ditargetkan dari tautan]

--tumpukan cadangan
--tumpukan cadangan,melakukan
Tentukan jumlah memori yang akan dicadangkan (dan komit secara opsional) untuk digunakan sebagai tumpukan
untuk program ini. Standarnya adalah 2Mb dicadangkan, 4K berkomitmen. [Opsi ini adalah
khusus untuk port tautan yang ditargetkan i386 PE]

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

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

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

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

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 input. Jika tidak ada
"GNUTARGET" di lingkungan, ld menggunakan format alami dari target. Jika "GNUTARGET"
diatur ke "default" kemudian BFD mencoba menemukan format input dengan memeriksa biner
masukan file; metode ini sering berhasil, tetapi ada potensi ambiguitas, karena ada
tidak ada metode untuk memastikan bahwa angka ajaib yang digunakan untuk menentukan format file objek adalah
unik. Namun, prosedur konfigurasi untuk BFD pada setiap sistem menempatkan:
format konvensional untuk sistem itu terlebih dahulu dalam daftar pencarian, jadi ambiguitas teratasi
mendukung konvensi.

"LDEMULATION" menentukan emulasi default jika Anda tidak menggunakan -m pilihan. Itu
emulasi dapat memengaruhi berbagai aspek perilaku tautan, terutama tautan default
naskah. Anda dapat membuat daftar emulasi yang tersedia dengan --bertele-tele or -V pilihan. jika
-m opsi 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 demangling
simbol. Variabel lingkungan ini digunakan dengan cara yang sama oleh tautan "gcc"
program pembungkus. Default mungkin ditimpa oleh --demangle dan --tanpa-demangle
Pilihan.

Gunakan h8300-hms-ld online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

  • 1
    DivFix + +
    DivFix + +
    DivFix++ adalah perbaikan video AVI Anda dan
    perangkat lunak pratinjau. Ini dirancang untuk perbaikan
    dan pratinjau file yang sedang diunduh
    dari ed2k(emule), torrent, gnutella, ftp...
    Unduh DivFix++
  • 2
    Komunitas JBoss
    Komunitas JBoss
    Proyek berbasis komunitas yang menampilkan
    inovasi terbaru untuk terdepan
    aplikasi. Proyek unggulan kami JBoss AS adalah
    Sumber Terbuka terkemuka,
    sesuai standar...
    Unduh Komunitas JBoss
  • 3
    Filer Django
    Filer Django
    django Filer adalah manajemen file
    aplikasi untuk Django yang membuat
    menangani file dan gambar dengan mudah.
    django-filer adalah manajemen berkas
    aplikasi untuk djang...
    Unduh Django Filer.dll
  • 4
    xCAT
    xCAT
    Toolkit Administrasi Klaster Ekstrim.
    xCAT adalah manajemen klaster yang dapat diskalakan
    dan alat penyediaan yang menyediakan
    kontrol perangkat keras, penemuan, dan OS
    disk/di...
    Unduh xCAT.dll
  • 5
    Psi
    Psi
    Psi adalah XMPP lintas platform yang kuat
    klien dirancang untuk pengguna berpengalaman.
    Ada build yang tersedia untuk MS
    Windows, GNU/Linux dan macOS.. Pemirsa:
    Pengguna akhir...
    Unduh Psi.dll
  • 6
    Bola Voli 2
    Bola Voli 2
    Kelanjutan resmi dari yang terkenal
    Game arkade Blobby Volley 1.x..
    Audiens: Pengguna Akhir/Desktop. Pengguna
    antarmuka: OpenGL, SDL. Pemrograman
    Bahasa: C++, Lua. C...
    Unduh Blobby Volley 2
  • Lebih banyak lagi »

Perintah Linux

Ad