উবুন্টু তার লাইব্রেরির ফাইলগুলি কোথায় সঞ্চয় করে?


17

আমি সি সংকলনে ব্যবহার করতে আমার নিজের লাইব্রেরি যুক্ত করতে চাই, তবে উবুন্টু এটি কোথায় সঞ্চয় করে তা সত্যই জানি না।


5
এটি / usr / lib & / usr / অন্তর্ভুক্ত
karthick87

আমি আমার লাইব্রেরিটি / ইউএসআর-এর সন্ধান পেয়েছি / এগুলিতে অন্তর্ভুক্ত করার সাথে আমার কীভাবে যেতে হবে তা অন্তর্ভুক্ত করেছে? আমি কি কেবল একটি শিরোনামের ফাইল এবং এসি ফাইল এটির কাছে রেখেছি বা একটি। h ফাইলে শিরোনাম এবং ফাংশনটি এক সাথে লিখব?
ডেভিড 25

3
গ্রন্থাগারগুলি এবং শিরোনামগুলি পৃথক জিনিস, / usr / অন্তর্ভুক্ত লাইব্রেরি থাকে না, এটিতে শিরোনাম থাকে যা গ্রন্থাগারগুলি থেকে উপলব্ধ ফাংশন / অবজেক্টের সংজ্ঞা হয়। প্রশ্নটি উন্নত করা উচিত, আপনি কী অর্জন করতে চাইছেন তা বোঝা শক্ত।
জোও পিন্টো

উত্তর:


11

আপনার প্রশ্নের আপনার মন্তব্যের উপর ভিত্তি করে, আমি মনে করি আপনি সত্যিই যা জিজ্ঞাসা করছেন তা হ'ল "আমি কীভাবে নিজের লেখা কাস্টম লাইব্রেরি ইনস্টল করব এবং এটি কোথায় রাখব?"

সাধারণভাবে, মেশিনে ব্যবহারকারীর জন্য অন্যের জন্য স্থানীয়ভাবে নির্মিত জিনিসগুলি / usr / স্থানীয় গাছের মধ্যে রাখা হয়। হেডার ফাইলটি / usr / স্থানীয় / অন্তর্ভুক্ত থাকা উচিত। সংকলিত লাইব্রেরিটি / ইউএসআর / স্থানীয় / লিবের মধ্যে যেতে হবে। .C ফাইলটি লাইব্রেরির অংশ নয়, এটি উত্সের অংশ এবং শেষ ব্যবহারকারীর ব্যবহারের জন্য সাধারণত কিছু ইনস্টল করা হয়নি। এইগুলির যে কোনও একটিতে ফাইল লাগাতে আপনার রুট অ্যাক্সেসের প্রয়োজন হবে।

লাইব্রেরিটি তৈরি করতে, আপনাকে প্রথমে স্থির বা গতিশীল (ভাগ করা) লাইব্রেরি চাইলে সিদ্ধান্ত নিতে হবে। ভাগ করা লাইব্রেরি তৈরির বিষয়ে আরও তথ্যের সন্ধান পাওয়া যাবে section.৪ বিভাগে, http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html- এ ভাগ করে নেওয়া লাইব্রেরি তৈরি করা । (স্টাফগুলি কোথায় রাখবেন সে সম্পর্কেও তাদের সুপারিশ রয়েছে - বেশিরভাগ বিকাশকারীদের একটি মতামত বা তিনটি থাকতে হবে :-))


11

লাইব্রেরির উপর নির্ভর করে উবুন্টু মূলত তিনটি স্থানে এর লাইব্রেরি সঞ্চয় করে

  1. / lib
  2. / Usr / lib
  3. , / Usr / local / lib

ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ড থেকে নিম্নলিখিতটি রয়েছে

/ lib

/ Lib ডিরেক্টরিতে সিস্টেমটি বুট করার জন্য এবং রুট ফাইল সিস্টেমে কমান্ডগুলি চালনার জন্য প্রয়োজনীয় ভাগ করা লাইব্রেরি চিত্র থাকে ie / বিন এবং / এসবিনে বাইনারি দ্বারা।

/ Usr / lib

/ usr / lib এর মধ্যে অবজেক্ট ফাইল, গ্রন্থাগার এবং অভ্যন্তরীণ বাইনারি রয়েছে যা ব্যবহারকারী বা শেল স্ক্রিপ্ট দ্বারা সরাসরি সম্পাদন করার উদ্দেশ্যে নয়। [22]

অ্যাপ্লিকেশনগুলি / usr / lib এর অধীনে একটি একক উপ-ডিরেক্টরি ব্যবহার করতে পারে। যদি কোনও অ্যাপ্লিকেশন একটি উপ-ডিরেক্টরি ব্যবহার করে তবে অ্যাপ্লিকেশন দ্বারা একচেটিয়াভাবে ব্যবহৃত সমস্ত আর্কিটেকচার নির্ভর ডেটা অবশ্যই সেই উপ-ডিরেক্টরিতে থাকা উচিত।

/ usr / স্থানীয় / lib স্থানীয় লাইব্রেরি রয়েছে যার অর্থ এই সিস্টেমের জন্য একটি নির্দিষ্ট তবে আমি এফএইচএস / / usr / স্থানীয় / lib এর উল্লেখ খুঁজে পাই না, এতে কেবল / usr / স্থানীয়র জন্য ব্যাখ্যা রয়েছে।


2

উবুন্টু ফাইলসাইম হায়ারার্কি স্ট্যান্ডার্ডকে অনুসরণ করে ( http://en.wikedia.org/wiki/Files systemm হাইয়ারচি_ স্ট্যান্ডার্ড ), নিয়মিত অ্যাপ্লিকেশন লাইব্রেরিগুলি / usr / lib এর অধীনে সংরক্ষণ করা উচিত।

দয়া করে নোট করুন যে লাইব্রেরিগুলি বিকাশ / পরিচালনা একটি তুচ্ছ বিষয় নয়, আপনার আরও কিছু বিশদ ডকুমেন্টেশন পড়তে হবে, এখানে একটি সুন্দর টিউটোরিয়াল: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html


0

আপনার সংকলকটি বলা উচিত, এটি কোথায় আপনার লাইব্রেরিটি খুঁজে পেতে পারে। ধরে নেওয়া হয়েছে, আপনার গ্রন্থাগারের পাথটি "/path/to/lib/libfoo.a" হয়, আপনি আপনার প্রোগ্রামটি "হ্যালো.সি" এর মতো সংকলন এবং লিঙ্ক করতে পারেন:

gcc -L/path/to/lib -lfoo hello.c

এটি উবুন্টুর সাথে নির্দিষ্ট নয়, আসলে আমি জানি সমস্ত সি-সংকলকরা এই পতাকাগুলিকে সমর্থন করে।


-2

উবুন্টুতে তারা খুঁজে পাওয়া যায় /usr/include


1
শিরোনামের ফাইলগুলি রয়েছে/usr/include। গ্রন্থাগারের জন্য আসল বাইনারিগুলি সেখানে সংরক্ষণ করা হয় না। শিরোনামগুলি কোনও গ্রন্থাগারের অংশ হিসাবে বিবেচিত হতে পারে, তবে সেগুলি পৃথকভাবে ইনস্টল করতে হবে এবং তারাএকটি লাইব্রেরি ব্যবহার করে এমন প্রোগ্রামগুলি সংকলন করতে ব্যবহার করছে। একবার একটি প্রোগ্রাম যা গ্রন্থাগার ব্যবহার করে তা সংকলিত হয়ে গেলে এর আর হেডার ফাইলগুলি দরকার হয় না বা ব্যবহার করা হয় না।
এলিয়াহ কাগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.