ওবিএস (ওপেনসুএস বিল্ড পরিষেবা) এর সাথে জিসিসি (> = 4.8) ব্যবহার করা হচ্ছে


3

আমি বর্তমানে আরানগোডিবি তৈরি করতে ওপেনসুএস বিল্ড পরিষেবা ( https://build.opensuse.org/ ) ব্যবহার করছি । তবে কিছু নতুন সি ++ বৈশিষ্ট্যের জন্য আমার মোটামুটি বর্তমান সি ++ সংকলক প্রয়োজন। কিছু পুরানো বিতরণের জন্য (যেমন ডেবিয়ান 6 বা সেন্টোস) ডিফল্ট সংকলকটি খুব পুরানো।

আমি বেশ নিশ্চিত, ওবিএসের সাথে আরও নতুন সংকলক ব্যবহার করার একটি উপায় থাকতে হবে তবে আমি ওবিএসের নথিতে নষ্ট হয়ে গেলাম। কেউ কি আমাকে সঠিক দিকে নির্দেশ করতে পারে?

উত্তর:


1

আমি অতীতে লাইব্রেরিগুলির জন্য এটি করেছি তবে সরঞ্জামগুলি তৈরি করে না, তাই আপনি যদি কোনও লাইব্রেরি তৈরি করেন তবে নীচেরগুলি বাইনারি সামঞ্জস্যতার সমস্যাগুলি কেন কাজ করবে না তা আমি দেখতে পাচ্ছি না। যেমন ভিভিয়েস্টার নির্দেশ করেছেন যে এটি আদর্শ পন্থা নয় এবং আপনি সমস্যাগুলির মধ্যে চলে যেতে পারেন তবে প্রযুক্তিগতভাবে এটি এইভাবে করা সম্ভব।

আমি যেভাবে এটি করেছি তা হ'ল আমার প্রকল্পে প্যাকেজটি (আপনার ক্ষেত্রে জিসিসি) অন্তর্ভুক্ত করা এবং এটি কেবলমাত্র নতুন যথেষ্ট সংস্করণ নেই এমন আর্কিটেকচারগুলির জন্য বিল্ড / বিল্ড (রিপোজিটরিগুলির অধীনে) ব্যবহার করতে সেট করুন।

BuildRequires: gcc >= 4.8নতুন সংস্করণটি তোলা হয়েছে তা নিশ্চিত করার জন্য আমি আপনার অনুমানগুলিতে রাখব তবে এটির প্রয়োজন হবে না

Https://build.opensuse.org/project/monitor/X11:Ellightment : ফ্যাক্টরির প্যাকেজ লুজিট কেবল ওপেনসুসে পাওয়া যায় : কারখানার সংগ্রহস্থল, সুতরাং আমার কাছে একটি অনুলিপি সংগ্রহস্থলটিতে রয়েছে যা সমস্ত কিছুর জন্য তৈরি করে for তবে ওপেনসুএস: ফ্যাক্টরি যা আপস্ট্রিম সংগ্রহস্থলে প্রদত্ত একটি ব্যবহার করে।

আপনার সংগ্রহস্থলে আপনি বিদ্যমান প্যাকেজটি শাখা করতে পারবেন যার অর্থ আপনি ইতিমধ্যে obs এ উপলব্ধ gcc এর একটি সংস্করণ খুঁজে পেতে পারেন এবং এটি নিজের তৈরি করার পরিবর্তে এটি ব্যবহার করতে পারেন।


আমি একটি আরএইচইএল পরিবেশে জিসিসি 47 কে শাখার চেষ্টা করেছি, তবে অনেকগুলি অবিশ্বাস্য নির্ভরশীলতা রয়েছে এবং এটি কাজ করার জন্য মূল কাঠামোটি একেবারেই আলাদা দেখায়।
জাঞ্চে

0

হ্যাঁ, আপনি ঠিক বলেছেন, ওপেনসুএস বিল্ড সার্ভিস আপনাকে লিনাক্স বিতরণের সংখ্যার জন্য প্যাকেজ তৈরি করার অনুমতি দেয়, তবে না , আপনি সমস্ত বিতরণের জন্য শেষ সি ++ সংকলক সংস্করণটি ব্যবহার করতে ভুল ভাবছেন। আপনার অ্যাপ্লিকেশনটির বিতরণ সরবরাহিত সংকলক এবং গ্রন্থাগারগুলি ব্যবহার করা উচিত এবং ওবিএস আপনাকে সেগুলি ইনস্টল করার প্রয়োজন ছাড়াই সর্বাধিক বড় বিতরণগুলির সাথে আপনার অ্যাপ্লিকেশনটির সামঞ্জস্যতা পরীক্ষা করার অনুমতি দেয়। সুতরাং আপনার কাছে দুটি বিকল্প রয়েছে:

  1. প্রত্যাশিত হিসাবে কাজগুলি করুন - আপনার কোডগুলিকে তাদের সংকলক এবং গ্রন্থাগারের সংস্করণে সমর্থন করতে এবং অভিযোজন করতে চান এমন বিতরণগুলি পরীক্ষা করুন - নতুন সংকলকটির জন্য প্রিপ্রোসেসর ব্লক সহ "নতুন বৈশিষ্ট্যগুলি" লুকান এবং পুরাতন সংকলক / লাইব্রেরির জন্য সামঞ্জস্যতা কোড লিখুন। ওবিএস স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশন তৈরি করতে পারে এবং আপনাকে সমস্যাগুলি দেখাতে পারে এবং আপনি এটিকে সহজেই ঠিক করতে পারেন।
  2. ডিস্ট্রিবিউশন সংকলক / লাইব্রেরি সংস্করণগুলির উপর নির্ভর না করে এবং একটি বড় প্যাকেজে এটি স্থাপন করুন সর্বশেষ সংকলক এবং বর্তমান libgcc এবং নির্ভরযোগ্য গ্রন্থাগারগুলি সহ স্ট্যাটিকভাবে সমস্ত প্রয়োজনীয় লাইব্রেরি লিঙ্ক করুন। এটি মূলত মালিকানাধীন অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়, এবং লিনাক্স ব্যবহারকারীরা তাদের ঘৃণা করে - এই অ্যাপ্লিকেশনগুলি একই গ্রন্থাগারের একাধিক অনুলিপি সিস্টেমে নিয়ে আসে এবং সেগুলি কীভাবে আপডেট হবে সে সম্পর্কে কারওই যত্ন নেই - ধারণা করুন, আপনি ওপেনএসএসএল ব্যবহার করছেন, এবং আপনার অ্যাপ্লিকেশনটিকে লিঙ্ক করুন স্ট্যাটিকালি ওপেনএসএসএল 1.0.1e এর সাথে, যার মধ্যে হার্টলেড বাগ রয়েছে - বন্টন বিক্রেতা সিকিউরিটি আপডেট প্রেরণ করে এবং বিতরণ-সরবরাহিত লাইব্রেরি ব্যবহার করে এমন সমস্ত অ্যাপ্লিকেশন ব্যবহারকারী আপডেট ইনস্টল করার সময় সুরক্ষিত থাকবে, তবে আপনার অ্যাপ্লিকেশনটি আপনার স্ট্যাটিকালি লিঙ্কযুক্ত অনিরাপদ ব্যবহার করা চালিয়ে যাবেগ্রন্থাগার। হ্যাঁ, সুরক্ষা আপডেট প্রস্তুত হওয়ার সময় আপনি সমস্ত প্রয়োজনীয় লাইব্রেরি নিজেই বজায় রাখতে এবং আপনার অ্যাপ্লিকেশনটি আপডেট করতে পারেন তবে এটি বিতরণ বিক্রেতার কাজ এবং আপনি তাদের কঠোর পরিশ্রমের পুনরাবৃত্তি করবেন।

1
সমস্যাটি হ'ল কিছু সি ++ 11 আরানগোডিবির একটি অংশ এবং আমি মনে করি যে আমি তাদের সংজ্ঞা দিয়ে আড়াল করতে পারি না। ওপেনএসএসএল হ'ল সি (সি ++ নয়) সুতরাং গতিশীলভাবে এটির লিঙ্ক করা সম্ভব হওয়া উচিত। সুতরাং প্রশ্নটি রয়ে গেছে: আমি কীভাবে যাব (2)।
fceller
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.