GNU/Linux >> Belajar Linux >  >> Linux

dlsym mengembalikan NULL, meskipun simbolnya ada

Saya rasa Anda tidak bisa melakukan itu, dlsym bekerja pada simbol yang diekspor. Karena Anda melakukan dlsym pada NULL (gambar saat ini), meskipun simbol ada di gambar ELF yang dapat dieksekusi, mereka tidak diekspor (karena ini bukan pustaka bersama).

Mengapa tidak menelepon langsung dan biarkan linker yang mengurusnya? Tidak ada gunanya menggunakan dlsym untuk mendapatkan simbol dari gambar yang sama dengan dlsym Anda panggilan. Jika testing Anda simbol berada di pustaka bersama yang Anda tautkan atau muat menggunakan dlopen maka Anda akan dapat mengambilnya.

Saya yakin ada juga cara untuk mengekspor simbol saat membuat executable (-Wl,--export-dynamic seperti yang disebutkan dalam komentar oleh Brandon) tetapi saya tidak yakin mengapa Anda ingin melakukan itu.


Linux
  1. Apa Arti Simbol yang Ditampilkan Oleh Ls -f?

  2. Apa tujuan dari "pengguna sistem" di Replikasi MySQL?

  3. nm :Perintah untuk membuat daftar simbol dalam file objek.

  1. Linux, Mengapa saya tidak bisa menulis meskipun saya memiliki izin grup?

  2. Cara mengarahkan keluaran aplikasi di latar belakang ke /dev/null

  3. Memeriksa apakah Layar dari Nama yang Ditentukan Ada

  1. Pisahkan Karakter Individu Menggunakan String Null?

  2. Apa Simbol Baris Baru Di Zsh's Ps1?

  3. /bin/ls tidak ditemukan, meskipun ada!