Pertanyaan yang diberi tag «dynamic-linking»

Dalam komputasi, penghubung dinamis adalah proses sistem operasi (OS) yang memuat (salinan dari penyimpanan persisten ke RAM) dan tautan (mengisi tabel lompatan dan memindahkan pointer) perpustakaan bersama yang dibutuhkan oleh yang dapat dieksekusi pada saat dijalankan, yaitu, ketika dieksekusi.

4
Bagaimana cara kerja nomor SO (objek bersama)?
Saya sadar bahwa objek yang dibagikan di Linux menggunakan "nomor-nomor", yaitu bahwa berbagai versi objek yang dibagikan diberi ekstensi yang berbeda, misalnya: example.so.1 example.so.2 Saya mengerti idenya adalah memiliki dua file berbeda sehingga dua versi perpustakaan dapat ada pada suatu sistem (sebagai lawan dari "Neraka DLL" pada Windows). Saya ingin …

4
Di mana executable mencari objek bersama saat runtime?
Saya mengerti bagaimana mendefinisikan termasuk objek yang dibagikan pada waktu penautan / kompilasi. Namun, saya masih bertanya-tanya bagaimana cara executable mencari objek yang dibagikan ( *.soperpustakaan) pada waktu eksekusi. Misalnya, aplikasi saya a.outmemanggil fungsi yang ditentukan di lib.soperpustakaan. Setelah mengkompilasi, saya pindah lib.soke direktori baru di blog saya $HOME. Bagaimana …




3
Temukan di mana simbol perpustakaan bersama didefinisikan pada sistem hidup / daftar semua simbol yang diekspor pada suatu sistem
Pada dasarnya, ini adalah dua pertanyaan menjadi satu - karena jika saya dapat membuat daftar semua simbol yang diekspor dalam suatu sistem, bersama dengan jalur pustaka bersama mereka, maka saya dapat dengan mudah grepmenampilkannya. Untuk simbol kernel, saya kira ini agak lebih mudah - karena kita dapat selalu cat /proc/kallsymsdan …



1
Mengapa sistem Unix / Linux tidak menelusuri direktori sampai mereka menemukan versi yang diperlukan dari perpustakaan yang ditautkan?
Saya memiliki executable biner bernama "alpha" yang membutuhkan pustaka tertaut (libz.so.1.2.7) yang ditempatkan di /home/username/myproduct/lib/libz.so.1.2.7 Saya mengekspor hal yang sama ke instance terminal saya sebelum menelurkan binary yang dapat dieksekusi dengan mengeksekusi perintah berikut. export LD_LIBRARY_PATH=/home/username/myproduct/lib/:$LD_LIBRARY_PATH Sekarang, ketika saya menelurkan aplikasi lain "bravo" yang membutuhkan pustaka yang sama tetapi dari …

9
Masalah untuk meluncurkan java di Debian: “kesalahan saat memuat pustaka bersama: libjli.so”
Saya mencoba meluncurkan java: $ java -version java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory $ ldd /usr/lib/jvm/java-6-openjdk/jre/bin/java linux-gate.so.1 => (0xb779f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7780000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7767000) libjli.so => /usr/lib/jvm/java-6-openjdk/jre/bin/../lib/i386/jli/libjli.so (0xb7762000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb775e000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7603000) …

1
Menginstal dua glibc bersama di debian / ubuntu
Apakah mungkin untuk menginstal dan menggunakan dua versi glibc yang berbeda pada mesin yang sama. Di mana satu versi hanya digunakan untuk menjalankan perangkat lunak warisan, yang bergantung pada binari glibc lama? Apakah mungkin untuk melakukannya dengan bantuan manajer paket (seperti "instal paket ini, dan dependensinya, untuk /opt/old-glibc), daripada mengaturnya …


3
Cari tahu apakah perpustakaan ada di jalurnya
Dengan asumsi saya ingin menguji apakah perpustakaan diinstal dan dapat digunakan oleh suatu program. Saya dapat menggunakan ldconfig -p | grep mylibuntuk mencari tahu apakah itu diinstal pada sistem. tetapi bagaimana jika perpustakaan hanya diketahui melalui pengaturan LD_LIBRARY_PATH? Jika demikian, program mungkin dapat menemukan perpustakaan, tetapi ldconfigtidak akan. Bagaimana saya …


2
Bisakah saya menggunakan ld.so.cache saya sendiri?
ldconfig memiliki dua opsi menarik: -f conf Use conf instead of /etc/ld.so.conf. -C cache Use cache instead of /etc/ld.so.cache. Saya mencoba menyalin /etc/ld.so.confke direktori home saya sendiri, dan mengeditnya untuk memasukkan path ke perpustakaan lokal saya misalnya /home/syockit/local/usr/libdll. Dan berlari ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache dan kemudian, untuk mengkonfirmasi bahwa …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.