gcc
dan ld
menyediakan banyak cara untuk menentukan jalur pencarian perpustakaan — di antaranya adalah tanda -rpath
dan -L
. Halaman manual tidak menunjukkan perbedaan antara kedua tanda ini, yang secara efektif mengatakan setiap tanda menambahkan pustaka ke jalur pencarian pustaka. Namun nampaknya aneh bahwa kedua bendera melakukan hal yang persis sama. Apa perbedaan, jika ada, antara kedua opsi ini?
gcc
linker
shared-libraries
ld
Craig M. Brandenburg
sumber
sumber
-rpath-link
?Jawaban:
Anda harus membaca beberapa salinan dari halaman manual (penekanan ditambahkan):
vs.
Jadi,
-L
beri tahuld
tempat mencari pustaka untuk ditautkan saat menautkan. Anda menggunakan ini (misalnya) saat Anda membuat library di pohon build Anda, yang akan diletakkan di jalur library sistem normal olehmake install
.--rpath
, di sisi lain, menyimpan jalur tersebut di dalam file yang dapat dieksekusi, sehingga linker dinamis waktu proses dapat menemukan pustaka. Anda menggunakan ini saat perpustakaan Anda berada di luar jalur pencarian perpustakaan sistem.sumber
-rpath=/some/weird/path
, ia-L /some/weird/path
juga membutuhkan . 2. Dengangcc
satu kebutuhan-Wl,-rpath=dir
.