Rumah > pembangunan bahagian belakang > C++ > Mengapa Penyusun Saya Tidak Dapat Menemui Pustaka Saya (-l Bendera Tidak Padan)?

Mengapa Penyusun Saya Tidak Dapat Menemui Pustaka Saya (-l Bendera Tidak Padan)?

Linda Hamilton
Lepaskan: 2024-12-21 13:29:10
asal
295 orang telah melayarinya

Why Can't My Compiler Find My Library (-l Flag Mismatch)?

Menyelesaikan Ralat Pautan dengan "-l" Tidak Padan

Apabila menyusun atur cara anda, menemui mesej ralat "usr/bin/ld: cannot cari -l" menunjukkan ketidakpadanan antara pustaka yang anda cuba pautkan dan lokasi sebenar pada cakera.

Lazimnya, bendera "l" menentukan perpustakaan untuk dipautkan, tetapi jika pemaut tidak dapat mencari pustaka, ia akan memaparkan ralat ini. Untuk mendiagnosis isu ini dengan lebih lanjut, adalah berguna untuk menyiasat perkara yang dicari oleh pemaut.

Menggunakan Mod Verbose

Penyambung menyediakan mod verbose yang boleh memberi penerangan tentang perpustakaan yang cuba dicarinya. Untuk memasuki mod verbose, gunakan arahan berikut sebelum menggunakan pemaut:

LD_DEBUG=all
Salin selepas log masuk

Sebagai contoh, pertimbangkan ralat "usr/bin/ld: cannot find -lzlib" semasa penyusunan. Menjalankan arahan berikut dengan LD_DEBUG=all akan memberikan maklumat penyahpepijatan terperinci:

LD_DEBUG=all ld -lzlib --verbose
Salin selepas log masuk

Menyahkod Output

Output mod verbose mungkin mendedahkan laluan khusus di mana pemaut sedang mencari perpustakaan dan sama ada ia boleh mencari fail yang diperlukan. Ia akan menyenaraikan semua direktori yang dicarinya dan menunjukkan sama ada fail perpustakaan yang sepadan (.so atau .a) ditemui.

Menyelesaikan Isu

Jika kata kerja output menunjukkan bahawa fail perpustakaan sebenar tidak wujud pada laluan yang dijangkakan, anda perlu menyediakan pautan simbolik ke lokasi yang betul. Sebagai contoh, dalam kes pustaka ZLIB, memautkan pautan simbolik berikut boleh menyelesaikan isu:

sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh menentukan pustaka yang hilang dan mencipta pautan sym yang diperlukan untuk dipautkan dengan fail perpustakaan yang betul, membolehkan penyusunan anda berjalan dengan jayanya.

Atas ialah kandungan terperinci Mengapa Penyusun Saya Tidak Dapat Menemui Pustaka Saya (-l Bendera Tidak Padan)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan