আমার কি libc ++ বা libstdc ++ ব্যবহার করা উচিত? [বন্ধ]


91

আমি সি / সি ++ ব্যবহার করে ওএসএক্স এবং লিনাক্স উভয়ের জন্য কমান্ড লাইন ইন্টারফেস এক্সিকিউটেবলগুলি বিকাশ করছি। প্রকল্পটি ওপেনসিভির বিপরীতে লিঙ্ক করবে। আমার কি libc ++ বা libstdc ++ ব্যবহার করা উচিত?


4
আমি জানি না, তবে আপনি এটি আগ্রহের বিষয়টি
উন্নয়নকারীগুলি

4
এই উত্তরটি সহায়ক হতে পারে।
ইয়ানতাও Xie

4
আপনি যদি ওপেনসিভির সাথে লিঙ্ক করেন তবে libstdc ++ ব্যবহার করুন। এখানে কেন stackoverflow.com/questions/13037659/...
Loozie

উত্তর:


89

আমি প্রতিটি ওএসের জন্য নেটিভ লাইব্রেরি যেমন GNU / Linux এ libstdc ++ এবং ম্যাক ওএস এক্স-এ libc ++ ব্যবহার করব would

libc ++ GNU / Linux এ 100% সম্পূর্ণ নয়, এবং libstdc ++ আরও সম্পূর্ণ হয়ে গেলে এটি ব্যবহার করার কোনও সত্যিকারের সুবিধা নেই। এছাড়াও, আপনি যদি সি ++ তে লিখিত অন্য যে কোনও লাইব্রেরির সাথে লিঙ্ক করতে চান তবে সেগুলি প্রায়শই libstdc ++ দিয়ে নির্মিত হবে যাতে এগুলি ব্যবহার করার জন্য আপনাকেও এটির সাথে লিঙ্ক করতে হবে।

আরো তথ্য এখানে বিভিন্ন প্ল্যাটফর্মের উপর libc সম্পূর্ণতার ++, সম্পর্কে।


4
আপনি কি লিনাক্সের উপর libc ++ এর সম্পূর্ণতার অবস্থান সম্পর্কে লিঙ্কটি বিস্তারিত / বিবরণ দিতে পারেন? লিবিসি ++ স্ট্যান্ডার্ড লাইব্রেরির শিরোনামগুলির একগুচ্ছ হিসাবে এটি প্ল্যাটফর্ম-নির্দিষ্ট কেন হবে তা আমি যথেষ্ট বুঝতে পারি না। অথবা আপনি কি বোঝাতে চাইছেন যে লিনাক্সে সমর্থিত নয় এমন এলএলভিএম রানটাইম লাইব্রেরিতে ক্ল্যাং আর্ট তৈরি করা দরকার?
টেমপ্লেক্স

4
@ টেম্পলেটআরেক্স, আমি বর্তমান অবস্থা জানি না, আপনি libcxx.llvm.org দেখতে পারেন । আমি লিবিসি ++ অনুসরণ করি না তাই আপনি ভুল ব্যক্তিকে জিজ্ঞাসা করছেন, তবে আপনি কি পরামর্শ দিচ্ছেন যে "স্ট্যান্ডার্ড লাইব্রেরি শিরোনামগুলির একগুচ্ছ" কখনই কোনও প্ল্যাটফর্ম-নির্দিষ্ট কোড থাকবে না?
জোনাথন ওয়েকেলি

আচ্ছা আপনি যেভাবে ম্যাক ওএস এক্স চালাচ্ছেন একই অ্যাপল হার্ডওয়্যারের উপরে লিনাক্স ইনস্টল করতে পারবেন, তাই আমি ভাবছি যে সি ++ হেডারগুলিতে প্ল্যাটফর্ম নির্ভরতা কোথা থেকে আসবে? হয়তো বিল্টিন সিপিইউ অন্তর্নিহিত বা আইও এবং ব্যতিক্রম হ্যান্ডলিং স্টাফের চারপাশে কিছু মোড়ক সিস্টেম নির্ভর but স্ট্যান্ডার্ড লাইব্রেরির শিরোনামগুলি কি কম-বেশি প্লাগযোগ্য হতে পারে?
টেমপ্লেক্স

4
আমি হার্ডওয়্যার নিয়ে কথা বলছি না। আবার, আমার কাছে libc ++ সম্পর্কে কোনও ধারণা নেই, তবে বেশিরভাগ সি ++ স্ট্যান্ডার্ড লাইব্রেরিগুলি ওএস এর সি লাইব্রেরিতে প্রয়োগ করা হয় এবং উদাহরণস্বরূপ std::ctype_base::maskমান থেকে <ctype.h>ধ্রুবকগুলিতে ম্যাপিং সম্পূর্ণ প্ল্যাটফর্ম নির্ভর। (সিপিইউ অন্তর্নিহিত সংকলক দ্বারা সরবরাহ করা হয়, ব্যতিক্রম হ্যান্ডলিং একটি নিম্ন-স্তরের এবিআই স্তর দ্বারা করা হয়, তবে আইও সাধারণত সি ++ এবং সি লাইব্রেরিতে সাধারণত সম্পন্ন হয়, নিম্ন স্তরের স্টাফ নয়)।
জোনাথন ওয়েকেলি

4
@ অ্যাবার্গমিয়ার, এটি একটি জাল যুক্তি, কারণ (যখন জিসিসি বা অন্যান্য যোগ্য সংকলন প্রক্রিয়াগুলির সাথে ব্যবহৃত হয়) লাইবস্টিডিসি ++ ব্যবহার করে কোডের উপর কোনও বিধিনিষেধ আরোপ করে না, গতিশীল বা স্থিতিশীলভাবে সংযুক্ত কিনা। এটি এলজিপিএল নয়। দয়া করে এফইউডি ছড়িয়ে দেবেন না। gcc.gnu.org/onlinesocs/libstdc++/faq.html#faq.license. কি
জোনাথন

30

প্রধান লিনাক্স বিতরণগুলি LLVM libc ++ সরবরাহ করে না, কারণ:

  1. অ্যাপল এবং ফ্রিবিএসডি থেকে ভিন্ন, জিপিএল + 3 কোনও সমস্যা নয়, সুতরাং এখানে অন্য স্ট্যাক প্রয়োগ করার দরকার নেই।
  2. লিনাক্স উপাদানগুলি বয়সের জন্য GNU libstd ++ প্রায় বিকাশ করা হয়েছে। তাদের মধ্যে কিছু অন্য কিছু তৈরি করে না।
  3. যদিও libc ++ নতুন বৈশিষ্ট্যগুলিতে শক্তিশালী, তবে এটি লিগ্যাসি কোড নিয়ে কিছু সমস্যা আছে।

অবশেষে যদি libc ++ বিতরণের অংশ হয়ে যায় তবে এটি একটি alচ্ছিক উপাদান হিসাবে থাকবে। এর সাথে লিঙ্ক করার জন্য সম্ভবত অতিরিক্ত বিকল্পের প্রয়োজন হবে।

জোনাথন যেমন বলেছিলেন, ডিফল্টরূপে যে কোনও সরঞ্জাম অন্তর্ভুক্ত করা উচিত আপনার ব্যবহার করা উচিত। কলিং লিনাক্সে ব্যবহারের জন্য নিরাপদ, যেহেতু একটি জিসিসি প্রতিস্থাপন হিসাবে কনফিগার করা হয়েছে, সুতরাং সেই দিক থেকে আপনাকে 2 টি সংকলক সম্পর্কে চিন্তা করতে হবে না। এছাড়াও যেহেতু আপনি দুটি প্ল্যাটফর্ম লক্ষ্যবস্তু করছেন তাই আপনার চেক করা উচিত।


4
ঝনঝনানি কোনও জিসিসি প্রতিস্থাপন নয় ... কেবল অন্য একটি সংকলক।
আইজাক পাস্কুয়াল

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