লিঙ্কার কী সন্ধান করছে তা নির্ধারণ করার জন্য, এটি ভার্ভোজ মোডে চালান।
উদাহরণস্বরূপ, জেড এলআইবি সমর্থন সহ মাইএসকিউএল সংকলনের চেষ্টা করার সময় আমি এই সমস্যার মুখোমুখি হয়েছি। সংকলনের সময় আমি এই জাতীয় ত্রুটি পেয়েছি:
/usr/bin/ld: cannot find -lzlib
আমি কিছু গুগলিং করেছি এবং একই ধরণের বিভিন্ন ইস্যুতে আগত রেখেছি যেখানে লোকেরা .so ফাইলটি আসলে আছে কিনা তা নিশ্চিত করে বলবে এবং যদি তা না হয়, তবে সংস্করণযুক্ত ফাইলটিতে একটি সিমিলিংক তৈরি করুন, উদাহরণস্বরূপ, zlib। so.1.2.8। তবে, আমি যখন যাচাই করেছি, zlib.so DID উপস্থিত রয়েছে। সুতরাং, আমি ভেবেছিলাম, অবশ্যই সমস্যা হতে পারে না।
আমি ইন্টারনেটসের অন্য একটি পোস্ট জুড়ে এসেছি যা LD_DEBUG = সব দিয়ে চালানোর পরামর্শ দিয়েছিল:
LD_DEBUG=all make
যদিও আমি ডিবাগিং আউটপুটটির একটি টন পেয়েছি, এটি আসলে সহায়ক ছিল না। এটি অন্য যে কোনও কিছুর চেয়ে বিভ্রান্তি যুক্ত করেছে। সুতরাং, আমি হাল ছেড়ে দিতে চলেছিলাম।
তারপরে, আমার একটি এপিফেনি ছিল। আমি আসলে ld কমান্ডের জন্য সহায়তা পাঠ্যটি যাচাই করার জন্য ভেবেছিলাম:
ld --help
সেখান থেকে, আমি বুঝতে পারি যে কীভাবে ভার্জোজ মোডে এলডি চালাতে হবে (এটি কল্পনা করুন):
ld -lzlib --verbose
এটি আমি পেয়েছি আউটপুট:
==================================================
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.a failed
attempt to open /usr/local/lib64/libzlib.so failed
attempt to open /usr/local/lib64/libzlib.a failed
attempt to open /lib64/libzlib.so failed
attempt to open /lib64/libzlib.a failed
attempt to open /usr/lib64/libzlib.so failed
attempt to open /usr/lib64/libzlib.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.a failed
attempt to open /usr/local/lib/libzlib.so failed
attempt to open /usr/local/lib/libzlib.a failed
attempt to open /lib/libzlib.so failed
attempt to open /lib/libzlib.a failed
attempt to open /usr/lib/libzlib.so failed
attempt to open /usr/lib/libzlib.a failed
/usr/bin/ld.bfd.real: cannot find -lzlib
ডিং, ডিং, ডিং ...
সুতরাং, অবশেষে এটি ঠিক করার জন্য আমি মাইএসকিউএলকে আমার নিজস্ব জেড এলআইবি সংস্করণ (বান্ডিল সংস্করণ নয়) দিয়ে সংকলন করতে পারি:
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
ভাল খবর!