Tentukan Keutamaan Laluan Perpustakaan dalam Pautan C
Apabila memautkan atur cara C dengan perpustakaan luaran, mengawal keutamaan untuk laluan perpustakaan tertentu boleh menjadi mencabar . Sebagai contoh, jika anda mempunyai perpustakaan tempatan bernama libfoo.so.0 dalam /my/dir tetapi perpustakaan lain dengan nama yang sama berada di /usr/local/lib, pemaut mungkin mengutamakan yang terakhir.
Penyelesaian 1: Gunakan LD_LIBRARY_PATH
Penyelesaian yang paling mudah ialah menambah laluan di mana perpustakaan baharu anda berada pada pembolehubah persekitaran LD_LIBRARY_PATH. Pada masa jalanan, program anda akan mencari laluan ini sebelum lokasi standard untuk perpustakaan. Walau bagaimanapun, perlu diperhatikan potensi keselamatan dan implikasi prestasi yang dikaitkan dengan penggunaan LD_LIBRARY_PATH.
Penyelesaian 2: Gunakan Pilihan -Wl,-rpath
Sebagai alternatif, anda boleh menggunakan pilihan pengkompil -Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH) melalui gcc untuk mengarahkan pemaut menggunakan laluan carian perpustakaan masa jalan dan bukannya direktori standard. Pilihan ini boleh digunakan untuk penyelesaian sementara atau, jika lebih suka, anda boleh mengubah suai laluan carian perpustakaan lalai sistem anda secara kekal.
Menyemak Maklumat Perpustakaan
Untuk mengesahkan perpustakaan yang pemaut anda ketahui, anda boleh menggunakan arahan:
<code class="bash">/sbin/ldconfig -p | grep libpthread</code>
Begitu juga, untuk memeriksa perpustakaan yang digunakan oleh aplikasi anda, gunakan:
<code class="bash">ldd foo</code>
Dengan mengikuti langkah ini, anda boleh menentukan pilihan laluan perpustakaan dengan berkesan semasa proses pemautan dalam program C anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengawal Keutamaan Laluan Perpustakaan dalam C Linking?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!