Rumah >pembangunan bahagian belakang >C++ >Mengapa Penyusun Saya Tidak Dapat Menemui Pustaka Saya (-l Bendera Tidak Padan)?
Menyelesaikan Ralat Pautan dengan "-l" Tidak Padan
Apabila menyusun atur cara anda, menemui mesej ralat "usr/bin/ld: cannot cari -l
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
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
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
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!