Eclipse जुनো / কেপলার / লুনা সিডিটিতে সি ++ 11 কীভাবে সক্ষম করবেন?


85

সম্পাদনা: এটি দেখা যাচ্ছে এটি সত্যই একলাস কেপলারের সাথে সুনির্দিষ্ট নয়। আমাকে একই প্রক্রিয়াটি এক্সিলিপ জুনোর জন্য ব্যবহার করতে হয়েছিল। সমস্যাটি হ'ল অন্য পোস্টে এই একই প্রশ্নের উত্তর দেওয়ার পদক্ষেপগুলি অনুপস্থিত বলে মনে হচ্ছে।

আমি সি ++ এর জন্য এক্লিপস কেপলারটি ব্যবহার করছি এবং আমি সি ++ 11 ব্যবহার করার চেষ্টা করছি এবং ত্রুটি পাচ্ছি। আমি যখন সংকলন করি তখন ত্রুটিটি পাই

ত্রুটি: C ++ 98 মোডে রেঞ্জ-ভিত্তিক-লুপের জন্য অনুমোদিত নয়

আমি পোস্ট থেকে নির্দেশাবলী অনুসরণ করেছি

Eclipse CDT C ++ 11 / C ++ 0x সমর্থন

এবং Eclipse जुनোর জন্য প্রদত্ত সমাধান কাজ করছে না।

বিভিন্ন মন্তব্য গ্রহন পুনরায় আরম্ভ এবং পরিষ্কার এবং পুনর্নির্মাণের পরামর্শ দিয়েছে। এটি কোনও পার্থক্য করেনি।

উত্তর:


183

আপনাকে দুটি কাজ করতে হবে, প্রথমে আপনাকে নিজের সংকলকটি সেটআপ করতে হবে, তারপরে আপনাকে সিডিটির ল্যাঙ্গুয়েজ প্রসেসর সেটআপ করতে হবে। যেহেতু আপনি কোন সংকলকটি ব্যবহার করছেন তা উল্লেখ করেননি, তাই আমি এটি জিসিসি ধরে নেব তবে পদক্ষেপগুলি অন্য সংকলকগুলির জন্য একই রকম হবে। (নোট করুন যে আপনার অবশ্যই একটি সংকলক প্রয়োজন যা অবশ্যই সি ++ 11 সমর্থন করে))

সংকলক সেট আপ করা মোটামুটি সোজা:

  1. আপনার প্রকল্পে ডান ক্লিক করুন এবং বৈশিষ্ট্যগুলি ক্লিক করুন
  2. সি / সি ++ এর অধীনে ক্লিক ক্লিক করুন সেটিংস
  3. জিসিসি সি ++ কম্পাইলারের অধীনে বিবিধ ক্লিক করুন
  4. অন্যান্য পতাকা বাক্সে টোকেনের তালিকায় "-std = c ++ 11" যুক্ত করুন।
  5. প্রয়োগ করুন এবং ঠিক আছে ক্লিক করুন

এই মুহুর্তে আপনার প্রকল্পটি পুনর্নির্মাণ করতে এবং এটি চালানোতে সক্ষম হওয়া উচিত। তবে সিডিটি এখনও সি ++ 11 এর জন্য ত্রুটি দেখাতে পারে। আপনি কীভাবে এটি সমাধান করতে পারেন তা এখানে:

  1. আপনার প্রকল্পে ডান ক্লিক করুন এবং বৈশিষ্ট্যগুলি ক্লিক করুন
  2. সি / সি ++ এর অধীনে জেনারেল ক্লিক করুন "প্রিপ্রেসেসর পাথ অন্তর্ভুক্ত করুন, ম্যাক্রোস"
  3. সরবরাহকারীদের ট্যাবটি নির্বাচন করুন
  4. তালিকায় একটি আইটেম থাকা উচিত যা "জিসিসি বিল্ট ইন কম্পাইলার সেটিংস" এর মতো কিছু বলে। এই এন্ট্রি নির্বাচন করুন।
  5. "গ্লোবাল প্রোভাইডার ব্যবহার করুন ..." বিকল্পটি চেক করুন
  6. তালিকার নীচে একটি বাক্স রয়েছে যা বলেছে "সংকলক স্পেস পেতে কমান্ড"। এটিতে "-std = c ++ 0x" যুক্ত করুন।
  7. ডানদিকে 'সরানো আপ' বোতামটি ব্যবহার করে তালিকার শীর্ষে "জিসিসি অন্তর্নির্মিত সংকলক সেটিংস" সরবরাহকারীকে সরান।
  8. প্রয়োগ ক্লিক করুন এবং তারপরে ঠিক আছে।
  9. আপনার Eclipse workpace এ ফিরে প্রজেক্ট মেনু, সি / সি ++ সূচক নির্বাচন করুন এবং "সমাধান না করা পুনরায় সমাধান করুন" এ ক্লিক করুন।

4
ধন্যবাদ. এটি কাজ করে। আমি লিখিত অন্য পোস্টটি ভুলভাবে লিখতে পারি, তবে মনে হয় in পোস্টটিতে সংকলক স্থাপনের উল্লেখ নেই।
ব্যবহারকারী 327301

4
আমার জন্য কাজ করে না। আমার মূল সমস্যাটি হ'ল অমীমাংসিত সি ++ 11 অন্তর্ভুক্ত। -std=c++11আপনি যেখানে রেখেছিলেন এবং পূর্ণ সূচকটি পুনর্নির্মাণ করতে বলেছি সেখানে এখনও রেখেছি , এখনও
অপরিজ্ঞাত

4
সম্পাদনা: এটির প্রথম অংশটি কোথায় পাওয়া উচিত তা আমি খুঁজে পাইনি তবে আমি মেকের মাধ্যমে সংকলন করছি, সুতরাং এটির ব্যাখ্যা হতে পারে। (যদিও আমি এটি ওয়ার্কস্পেস কনফিগারেশনে পেয়েছি এবং সেট করেছি)। তবে আমি এটিতে রেখেছি compiler spec, এবং এখনও কাজ করে না। স্টাড :: শেয়ার্ড_পিটার এবং একই স্বীকৃত নয়। যদিও এটি জুনো দিয়ে পুরানো মেশিনে কাজ করত।
ডোলানর

4
আমার ক্ষেত্রে (gcc) আমি -std = c ++ 0x ব্যবহার করেছি। সুতরাং সবকিছু কাজ করছে। ধন্যবাদ!
ডেনিস জাইকিন

4
@ মিরিরিকসার এই ওয়ার্কস্পেসের জন্য এই সেটিংটি তৈরি করার কোনও উপায় আছে যাতে আমি যখন কোনও নতুন প্রকল্প যুক্ত করি তখন এটি স্বয়ংক্রিয়ভাবে এটির ক্ষেত্রেও প্রয়োগ হয়?
ইভাইলো স্ট্রান্ডজেভ

25

C ++ 11 সমর্থন অ্যালভিস কেপলার পরিষেবা রিলিজ 1 (বিল্ড আইডি: 20130919-0819)

সর্বশেষতম রিলিজ Eclipse Kepler SR1 এ আপনাকে কেবল -std = c ++ 11 যুক্ত করতে হবে

  1. আপনার প্রকল্পে ডান ক্লিক করুন এবং বৈশিষ্ট্য ক্লিক করুন
  2. নেভিগেট করতে সি / সি ++ সাধারণ এবং Preprocessor অন্তর্ভুক্ত করুন পথ, ম্যাক্রো ইত্যাদি
  3. সরবরাহকারীদের ট্যাবটি নির্বাচন করুন
  4. যোগ -std = C ++ 11 থেকে কমান্ড কম্পাইলার চশমা পেতে:
  5. পরিবর্তনগুলি প্রয়োগ করুন, সূচকটি স্বয়ংক্রিয়ভাবে উত্পন্ন করা উচিত।

"কমান্ড কম্পাইলার চশমা পেতে:" লাইন মত হওয়া উচিত:

${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11

4
জিসিসির সাথে আমাকে -std = c ++ 0x
16

আপনি কোন জিসিসি ব্যবহার করেন? সি ++ 0
এক্স

4
এটি দ্বিতীয়বার একটি নতুন গ্রহন সিডিটি স্থাপন করতে পেল - এটি সেট আপ করা আরও স্বজ্ঞাত হওয়া উচিত।
ccook


6

আমি Eclipse Kepler ব্যবহার করি এবং এটি ঠিক করার জন্য আমি এটি করেছি:

1 - প্রকল্পটি ডান ক্লিক করুন >> প্রোব্রেইটস >> সি / সি ++ বিল্ড :: সেটিংস

2 - জিসিসি জি ++ সংকলক গিয়েছিলেন >> বিবিধ >> অন্যান্য পতাকা

 i then added -std=c++11 
 hit apply and ok

এটা আমার সমস্যা স্থির!

আমি আশা করি এটি সাহায্য করেছে!


এটি এক্সিলিপ প্ল্যাটফর্মের সেরা উত্তর, সংস্করণ: 4.3.1 - কেপলার / জুনো কী তা জানেন না!
টিসিএসগ্রাড

এক্সিলিপ কেপলার হ'ল এক্সিলিপ ভার্সন 4.3.X
কার্ক

4

এখানে Elpipse indigo এবং cdt 8.0.2 চলছে। আমি সমস্ত গাইড অনুসরণ করেছিলাম, তবে স্টাড :: অনন্য_পিটারের মতো জিনিসগুলি সন্ধানের জন্য হাত থেকে প্রিপ্রোসেসর সংজ্ঞায়িত করা এখনও প্রয়োজনীয় ছিল। অন্তর্ভুক্ত ফাইল "মেমরি" এটি পরীক্ষা করে। প্রকল্পের বৈশিষ্ট্যগুলিতে "সি ++ জেনারেল" এর "পাথ এবং চিহ্ন" ট্যাবের অধীনে "চিহ্নগুলি" ট্যাবে __cplusplus 201103L তে সেট করুন।


হ্যাঁ, পুরানো প্রকল্পগুলি থেকে মাইগ্রেশনের জন্য কাজ করে।
গাই এল

2

প্রকল্পের বৈশিষ্ট্যগুলিতে "-std = c ++ 11" ডায়ালেক্ট পতাকা যুক্ত করা-> সি / সি ++ বিল্ড -> সেটিংস -> সরঞ্জাম সেটিংস (জিসিসি সি ++ সংকলক -> উপকরণ) উপরে উল্লিখিত সেটিংসগুলি বাদ দিয়ে, ক্লিপস কেপলারে আমার সমস্যার সমাধান করেছে।


1

আমি Eclipse Luna ব্যবহার করছি এবং C / C ++ বিল্ড -> সেটিংস এর অধীনে কোনও "সরঞ্জাম সেটিংস" নেই। আমি DID অ্যাড -std = C ++ অধীনে কম্পাইলার চশমা কমান্ড লাইন 11 "সি / সি ++ সাধারণ -> Preprocessor সহ -> প্রোভাইডার" হিসেবে সুপারিশ করেছে। তবে এটি এখনও আমার সূচকগুলির এমপ্লেস () সমাধানের ক্ষমতা সন্তুষ্ট করতে পারেনি।

সুতরাং আমি এর জন্য শিরোলেখের ফাইলে সন্ধান করেছি এবং দেখতে পেয়েছি যে এমপ্লে ফাংশনগুলি __cplusplus> = 201103L এর উপর নির্ভরশীল। সুতরাং আমি কেবলমাত্র প্রিপ্রসেসর প্রতীক "__cplusplus" যুক্ত করেছি এবং এটি 201103 এর মান দিয়েছি।

কিন্ডা হ্যাকিশ তবে সূচক খুশি। (এবং মেকফাইলগুলি আমার বিল্ড ফ্ল্যাগগুলি নির্ধারণ করে, গ্রহণের প্রকল্প নয়)


0

মিঃআরিক্সির প্রদত্ত সমাধানটি সর্বশেষতম অক্সিজেন সিডিটি ইনস্টল করার পরে কেবল কাজ করে। এটি মার্স সিডিটি নিয়ে আমার পক্ষে কাজ করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.