Ralat Ditemui: "usr/bin/ld: cannot find -l<nameOfTheLibrary>"
Apabila cuba menyusun atur cara, anda mungkin menghadapi mesej ralat berikut:
usr/bin/ld: cannot find -l<nameOfTheLibrary>
Ralat ini menunjukkan bahawa pemaut tidak dapat mencari pustaka yang ditentukan semasa memautkan boleh laku anda. Untuk menyelesaikan isu ini, kami akan menyelidiki butiran tentang cara menentukan laluan perpustakaan dan mengarahkan pemaut ke lokasi yang betul.
Menambah Laluan Carian Perpustakaan
Satu mungkin punca ralat ini tiada laluan carian perpustakaan dalam Makefile anda. Untuk menyelesaikannya, anda boleh menambah pilihan pada perintah pemaut untuk menentukan tempat untuk mencari perpustakaan.
Sebagai contoh, jika pustaka anda terletak dalam direktori yang dipanggil "/myLib", anda boleh menambah baris berikut ke Makefile anda:
LDFLAGS += -L/myLib
Ini akan menambah "/myLib" pada laluan carian pemaut, membolehkannya mencari perpustakaan.
Pustaka Symlinking
Isu lain yang mungkin ialah perpustakaan anda ialah pautan simbolik ke perpustakaan lain. Dalam kes sedemikian, pemaut mungkin menghadapi masalah menyelesaikan pautan simbolik. Untuk menangani perkara ini, buat symlink ke fail perpustakaan versi sebaliknya. Contohnya, jika pustaka anda dinamakan "myLib.so" dan fail versinya ialah "myLib.so.1", cipta pautan sym seperti berikut:
ln -s myLib.so.1 myLib.so
Menjalankan Pemaut dalam Mod Verbose
Untuk diagnostik lanjut, pertimbangkan untuk menjalankan pemaut dalam mod verbose. Ini akan memberikan output terperinci tentang proses pemautan dan membantu anda mengenal pasti sebarang isu tambahan:
ld -l<nameOfTheLibrary> --verbose
Dengan memeriksa output, anda boleh menentukan perkara yang sedang dicari oleh pemaut dan menyelesaikan sebarang ralat atau kebergantungan yang hilang.
Atas ialah kandungan terperinci Mengapa Pengkompil Saya Menunjukkan 'usr/bin/ld: cannot find -l' dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!