আমি একটি সাধারণ সি ++ প্রোগ্রাম তৈরি করছি এবং আমি বিকাশ এবং পরীক্ষার জন্য সাম্প্রতিকভাবে একটি সিস্টেম সরবরাহিত ভাগ করা লাইব্রেরিটির আরও সাম্প্রতিক সংস্করণটি প্রতিস্থাপন করতে চাই।
আমি LD_LIBRARY_PATH ভেরিয়েবল সেট করার চেষ্টা করেছি তবে লিঙ্কার (এলডি) এর সাথে ব্যর্থ হয়েছে:
/ usr / bin / ld: -lyaml-cpp খুঁজে পাচ্ছে না
আমি আশা করি এটি কাজ করবে কারণ এলডি ম্যান পৃষ্ঠা অনুসারে:
লিঙ্কারটি প্রয়োজনীয় ভাগ করা লাইব্রেরিগুলি সনাক্ত করতে নিম্নলিখিত অনুসন্ধানের পথগুলি ব্যবহার করে: ... একটি স্থানীয় লিঙ্কারের জন্য, পরিবেশের পরিবর্তনশীল "LD_LIBRARY_PATH" এর বিষয়বস্তু ...
আমি তখন LIBRARY_PATH সেট করার চেষ্টা করেছি এবং এটি কাজ করেছে।
জিসিসির ম্যানুয়াল অনুসারে:
LIBRARY_PATH এর মান হ'ল PATH এর মতো ডিরেক্টরিগুলির একটি কোলন-বিচ্ছিন্ন তালিকা। নেটিভ সংকলক হিসাবে কনফিগার করা অবস্থায়, জিসিসি বিশেষ লিঙ্কার ফাইলগুলির সন্ধান করার জন্য নির্দিষ্টভাবে নির্দেশিত ডিরেক্টরিগুলি চেষ্টা করে, যদি এটি জিসিসি_এএসইসিপিআরএফআইএক্স ব্যবহার করে এটি খুঁজে না পায়। -L বিকল্পের জন্য সাধারণ লাইব্রেরিগুলি অনুসন্ধান করার সময় জিসিসি ব্যবহার করে লিঙ্কিং এই ডিরেক্টরিগুলিও ব্যবহার করে (তবে -L এর সাথে নির্দিষ্ট ডিরেক্টরিগুলি আগে আসে)।
(জিসিসি) ম্যানুয়ালটি যেমন পরামর্শ দেয়, LIBRARY_PATH কাজ করে কারণ আমি জিসিসির সাথে লিঙ্ক করেছি।
কিন্তু ..
- যেহেতু আমি জিসিসির সাথে লিঙ্ক করব কেন ত্রুটি বার্তার পরামর্শ অনুসারে এলডি বলা হচ্ছে?
- একই উদ্দেশ্যে দুটি ভেরিয়েবল থাকার বিন্দু কী? অন্য কোন পার্থক্য আছে?