cc1plus: ত্রুটি: অ + অজ্ঞাত কমান্ড লাইন বিকল্প "-std = সি ++ 11" জি ++ সহ


91

আমি ব্যবহার করছি g++এবং পতাকা -std=c++11বা c++0xপতাকা ব্যবহার করে সংকলনের চেষ্টা করছি ।

যাইহোক, আমি এই ত্রুটি পেয়েছি

cc1plus: error: unrecognized command line option "-std=c++11"

g ++ --version

g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4
এটি -std=c++0xজি ++ সহ
স্টিফান

4
@ স্টেফান ভুল, উভয়ই সম্ভব। আপনি কোন gnu সংস্করণ ব্যবহার করছেন? সি ++ 11 শুধুমাত্র> = 4.3 এ সমর্থিত।
অ্যান্টনিজন

4
চালান g++ --version। তারপরে এখানে সংস্করণ নম্বর পোস্ট করুন।
কনফলে ডোলিক্স

4
এটা ভয়ানকভাবে পুরানো। এই সংস্করণটি সি ++ 11 সমর্থন করে না। সি ++ 11 সমর্থনের জন্য পরবর্তী সংস্করণটি 4.7 ইনস্টল করুন।
কনফলে ডোলেক্স

4
এটা সম্ভব sysadmins করেনি একটি সি ++ 11 সক্ষম কম্পাইলার ইনস্টল করুন, কিন্তু এটি ডিফল্ট এক নি। g++-আপনার কনসোল উইন্ডোতে কমান্ডটি স্বয়ংক্রিয়ভাবে পূর্ণ করার চেষ্টা করে আপনি জিসিসির কোন নির্দিষ্ট সংস্করণ ইনস্টল করা আছে তা যাচাই করতে পারেন ।
বার্ট ভ্যান ইনজেন শেহেনো

উত্তর:


105

আপনার জি ++ সংস্করণ থেকে দেখে আপনার এটি খারাপভাবে আপডেট করা দরকার। সি ++ 11 কেবলমাত্র জি ++ 4.3 থেকে উপলব্ধ। অতি সাম্প্রতিক সংস্করণটি 4.7।

প্রাক-জি ++ 4.7 -std=c++0xসংস্করণগুলিতে, আপনাকে ব্যবহার করতে পারেন এমন আরও সাম্প্রতিক সংস্করণের জন্য আপনাকে ব্যবহার করতে হবে -std=c++11


4
৪.৮.০ কি ভাল লাগার মতো, বা মার্চ মাসে আসল প্রকাশ বা কিছু আছে?
ক্রিস

@ ক্রিস আমি দুঃখিত, এটি 4.7 হওয়া উচিত, 4.8 এখনও বিকাশাধীন is
অ্যান্টনিজন

@ আন্টনিজন, আহা, অনুমান করি আমি এক বা দুই মাস অপেক্ষা করব। আমি স্থিতিশীল প্রকাশগুলি বা এটির জন্য আরও ভাল শব্দটি আপনি ব্যবহার করতে চান তা পছন্দ করি।
ক্রিস

@ ক্রিস ইয়ে অথবা আপনি কেবল লিনাক্স পুদিনা আপডেট ম্যানেজার আপনাকে অবহিত করার জন্য অপেক্ষা করুন :)
এন্টনিজন

4
পছন্দ করুন
এন্টনিজন

14

জিসিসি ওয়েবসাইট থেকে উদ্ধৃত :

সি ++ 11 বৈশিষ্ট্যগুলি জিসিসির সাবভার্সন সংগ্রহস্থলের ট্রাঙ্কে এবং জিসিসি ৪.৩ এবং তারপরে "মাইনলাইন" জিসিসি সংকলকের অংশ হিসাবে উপলব্ধ। সি ++ 0 এক্স সমর্থন সক্ষম করতে, আপনার জি ++ কমান্ড লাইনে কমান্ড-লাইন প্যারামিটার -std = c ++ 0x যুক্ত করুন। অথবা, সি ++ 0 এক্স এক্সটেনশনের পাশাপাশি GNU এক্সটেনশানগুলি সক্ষম করতে, আপনার g ++ কমান্ড লাইনে -std = gnu ++ 0x যুক্ত করুন। GCC 4.7 এবং পরবর্তীকালে -std = c ++ 11 এবং -std = gnu ++ 11 সমর্থন করে।

সুতরাং সম্ভবত আপনি জি ++ এর একটি সংস্করণ ব্যবহার করেন যা সমর্থন করে না -std=c++11-std=c++0xপরিবর্তে চেষ্টা করুন।

সি ++ 11 বৈশিষ্ট্যগুলির উপলভ্যতা কেবলমাত্র সংস্করণ> = 4.3 এর জন্য।


@ অ্যান্টিজিন সঠিক, তবে সবার জন্য বিকল্প নয়।
স্টেফান

@ অ্যান্টিজিন: এমন একটি সফ্টওয়্যার রয়েছে যা সংস্করণ> ৪.১ এর সাথে সঙ্গতিপূর্ণ নয়। উদাহরণস্বরূপ ABACUS informatik.uni-koeln.de/abacus/index.html দুঃখজনকভাবে যথেষ্ট যে আমাকে একবার এটি ব্যবহার করতে হয়েছিল।
স্টিফান

3

আপনার এটি চেষ্টা করা উচিত

g++-4.4 -std=c++0x or g++-4.7 -std=c++0x

-4

আমিও একই ত্রুটি পেয়েছি, ডি-ফ্ল্যাগের সাথে সংকলন এটি ঠিক করেছে, এটি চেষ্টা করুন:

g ++ -Dstd = c ++ 11


কেন এই নিম্নমানের? উত্তরে কী দোষ? কেন এই কাজ করে না?
বেদে

আমার পক্ষে বেদে কমপক্ষে (gcc4.6.3 এ), এটি অবশ্যই সি ++ 11 দিয়ে সংকলন করছে না। আমি std::vector<int> v = {1, 2, 3};পরীক্ষার জন্য একটি সাধারণ 2 লাইন প্রোগ্রাম লিখেছিলাম এবং এটি এটির উপরে সমস্ত ধরণের ত্রুটি নিক্ষেপ করছে (পতাকাটি ছাড়া ভিন্ন ত্রুটি যদিও আকর্ষণীয়ভাবে যথেষ্ট)।
scohe001

6
@ বেদা এই উত্তরটি সংকলন করার সময় এটি সম্ভবত পছন্দসই কিছু করতে পারে না। -Dকমান্ড লাইন যুক্তি ঢোকাতে সমতূল্য #defineআপনার সোর্স কোডে। সুতরাং এই আদেশ থাকার মত #define std c++11। তাহলে কী আপনি কীভাবে std::stringনতুন সংজ্ঞা দেওয়া হবে তা ভাবতে পারেন c++11::string? মোটেই খুব একটা কার্যকর নয়।
jwm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.