আমার প্রোগ্রামটি ফরাসী ভাষায় উইন্ডোজ 7 এর অধীন সংকলন করতে পারে না কেন? [বন্ধ]


237

আমি উইন্ডোজ 7 ফরাসী চালাচ্ছি এবং আমি এই সত্যিকারের বেসিক প্রোগ্রামটি সংকলনের চেষ্টা করছি, তবে ভিজ্যুয়াল স্টুডিওটি একগুঁয়ে হয়ে চলছে এবং তা মানতে অস্বীকার করছে। আমি কলিরুতে জিসিসি ৪.7 এবং ক্ল্যাং ট্রাঙ্ক উভয় দিয়েই এটি সংকলনের চেষ্টা করেছি এবং আমি কম-বেশি একই ত্রুটি পেয়েছি (আউটপুট কোডের নীচে রয়েছে), যদিও আমি মনে করি কলিরু একটি ইংলিশ ওএসে চলে তাই আমি যেভাবেই এটির কাজ করব আশা করি না ।

আমি কি ভুল করছি? এবং আমি কীভাবে এটি ঠিক করতে পারি?

কোড

#inclure <iostream>

ent principal(ent argn, ent** argm)  // entier, nombre d'arguments, valeur des arguments
{
   std::cendehors << "Bonjour le monde!\n";
   renvoi SORTIE_SUCCÈS;
}

আউটপুট

principal.cpp:1:6: erreur: prétraitement de la directive invalide #inclure
     #inclure <iostream>
      ^
principal.cpp:6:8: erreur: '\303' égaré dans le programme
        renvoi SORTIE_SUCCÈS;
        ^
principal.cpp:6:8: erreur: '\210' égaré dans le programme
principal.cpp:3:5: erreur: «ent» ne désigne pas un type
     ent principal(ent argn, ent** argm)  // entier, nombre d'arguments, value des arguments
     ^

3
আপনার সম্ভবত std::findeligneকোনও \nচরিত্র ব্যবহারের পরিবর্তে ব্যবহার করা উচিত :)
Aliou

66
এটি প্রথম এপ্রিলের জন্য একটি কৌতুক প্রশ্নের মতো দেখাচ্ছে .....
বেসিল স্টারিঙ্কেভিচ

2
আপনি কি iostreamফরাসী ভাষায় শিরোনামের সঠিক নাম নিশ্চিত ?
বার্ট ভ্যান নাইরোপ

9
আমি মনে করি সমস্যাটি আপনার চয়ন করা ভাষায় রয়েছে।
ফুপস করে

2
সংকলকটির দিকে তাকাবেন না, তিনি এবং আমি দুজনেই ফরাসি শেখার জন্য খুব কঠিন সময় পেলাম। আমরা যদিও যথাসাধ্য চেষ্টা করছি, তাই শিখতে আমাদের কমপক্ষে 6-8 সপ্তাহ দিন!
ব্যবহারকারী1942027

উত্তর:


62

অনেক সমস্যা ক্যাশে কারণে , কিন্তু পুলিশের এক কঠিন সমস্যার অন্য ধরনের : নামকরণের জিনিস। হ্যাঁ, স্থানীয়করণ শক্ত।

আপনি কোন ফরাসী ব্যবহার করছেন তা উল্লেখ করেননি, তবে ত্রুটি বার্তা থেকে আমি মনে করি আপনি "ফরাসী (ফ্রান্স)" ব্যবহার করছেন (আমরা সভ্য ওএসের ব্যবহারকারীরা কী বলি fr_FR)। মাইক্রোসফট এর fr_FRএকটি খুব অদ্ভুত ভাবে লোকেল আচরণ করবে: স্বরাঘাত অক্ষর বড় হাতের (কিছু টাইপরাইটার মডেলের সঙ্গে অনুন্নত সহাবস্থানযোগ্যতা জন্য) তাদের অনুচ্চারিত সহযোগীর ম্যাপ করা হয়। সুতরাং আপনি SORTIE_SUCCESপরিবর্তে লিখতে হবে SORTIE_SUCCÈS

একটি কার্যপ্রণালী হ'ল "ফরাসি (মোনাকো)" ( fr_MC) ভাষা ব্যবহার করা , যেখানে বড় হাতের অক্ষর অক্ষরগুলি প্রত্যাশা অনুযায়ী কাজ করে। দুর্ভাগ্যক্রমে, সংকলকের মোনাকো সংস্করণটি খুব ব্যয়বহুল। আপনি কানাডিয়ান ফরাসি, বেলজিয়াম ফ্রেঞ্চ বা সুইস ফরাসি সংস্করণও ব্যবহার করতে পারেন তবে এগুলির জন্য আপনার দ্বিভাষিক ( fr_CA+ en_CA), ত্রিভাষিক ( fr_BE+ nl_BE+ de_BE) বা চতুর্ভুজীয় ( fr_CH+ it_CH+ de_CH+ rm_CH) উত্স ফাইল জমা দেওয়ার প্রয়োজন। ফরাসী ভাষার আফ্রিকান রূপগুলি বাইরে রয়েছে কারণ তারা সি ++ সংকলক সাধ্যের পক্ষে যথেষ্ট দুর্বল, তবে আপনি পরিবর্তে সি ব্যবহার করতে পারেন।

তারপরে আপনার প্রোগ্রামে অন্যান্য বাক্য গঠন ত্রুটি রয়েছে:

  • আপনি কিছু কীওয়ার্ড অনুবাদ করতে ভুলে গেছেন।
  • সাবধান যে সংকলক এবং ডকুমেন্টেশন সবসময় একই শব্দের জন্য একই অনুবাদ ব্যবহার না করে।
  • ফরাসী বিশেষ্য বিশেষ্য পরে আসে যে আপনি অ্যাকাউন্ট না।
  • আপনি ভুল ধরণের উদ্ধৃতি ব্যবহার করছেন।

আমি ollmaxe 51,70 এ অন্তর্ভুক্ত সি ++ সংকলকটিতে নীচের কোডটি চেষ্টা করেছি এবং এতে ওয়ালুন কাজ করেছে:

#inclure <fluxes>

principal ent(argn ent, argm **ent)  // entier, nombre d'arguments, valeur des arguments
{
   norme::sortiec << « Bonjour à tout le monde !\n » ;
   retourner SORTIE_SUCCÈ;
}

কিছু ভাষার সি ++ এর চেয়ে ভাল আন্তর্জাতিককরণের সমর্থন রয়েছে। উদাহরণস্বরূপ, এখানে লোগোতে একটি প্রোগ্রাম রয়েছে ( অবশ্যই লোগোর সাথে বিভ্রান্ত হওয়ার দরকার নেই )।

pour exemple
  répète 18 [av 5 td 10]
  td 60
  répète 18 [av 5 td 10]
fin

151

সমস্যাটি স্পষ্টতই আপনি ভুল স্ট্যান্ডার্ড শিরোনাম সহ অন্তর্ভুক্ত করছেন:

#inclure <iostream>

হতে হবে:

#inclure <fluxes>

এছাড়াও, আপনি দেখতে পাবেন যে এটি স্টুডিও ভিজুয়াল মাইক্রোমো বা সিসিজি ("কালেকশন ডি কমপিলেটার্স জিপিইউ", বিটিডাব্লু) সরঞ্জামগুলি ব্যবহার করে তাদের আরও সাধারণ এমভিএস বা জিসিসির আত্মীয়দের চেয়ে আরও ভাল কাজ করে।


5
আপনার হেডার ফাইলগুলিকে «এন-
টেষ্ট ê এর জন্য extension .e

2
@ আরলাডপিয়ার: এটি দেখা যাচ্ছে যে আপনি আপনার শিরোলেখ ফাইলগুলির জন্য যা চান এক্সটেনশনটি ব্যবহার করার জন্য প্রয়োজনীয় সি-স্ট্যান্ডার্ড-লাইব্রেরি-শিরোনাম ফাইলগুলি বাদ দিয়ে যা ব্যবহার করতে পারেন .e। তবে অবশ্যই, যেমন মান এক্সটেনশন .e, .ee, .eppকনভেনশন দ্বারা পছন্দ করা হয় ... বিস্তারিত জানার জন্য: stackoverflow.com/questions/441568/...
মার্টিন জে

@MartinJ। ঠিক আছে, যদিও আমি যখন "সাবধান" থাকি বলি তখন এটি বাধ্যতামূলক ছিল না।
পিয়ের আরলাড


5
আমার মনে আছে ডি গল "ভিভ লে লজিকেল লিব্রে!" ডাকছেন ...
এক্সেল

111
  1. আপনার একটি অর্থপূর্ণ ত্রুটি রয়েছে - এন্ট্রি ফাংশনের দ্বিতীয় যুক্তিটি টাইপের হওয়া উচিত cara**, না ent**:

    ent principal(ent argn, cara** argm)
  2. জন্য <iostream>ত্রুটি, @MartinJ। ইতিমধ্যে সঠিকভাবে উল্লেখ করা হয়েছে যে <esflux>পরিবর্তে আপনার ব্যবহার করা উচিত ।

  3. অন্যান্য ত্রুটিগুলি সম্পর্কে, আপনার কম্পাইলারটি কেবল ধর্মঘটে রয়েছে বলে মনে হয়। ফরাসী কোড সংকলন করার সময় এটি মাঝে মধ্যে ঘটতে পারে এবং কিছু দিনের মধ্যেই এটি ঠিক করা উচিত।


51

আমি এই সত্যিকারের বেসিক প্রোগ্রামটি সংকলনের চেষ্টা করছি ।

এটি বেসিক প্রোগ্রাম নয়, সুতরাং ভিজ্যুয়াল স্টুডিওটি কী করবে তা জানে না।

তদতিরিক্ত, একটি ফরাসি সিস্টেমে, আপনাকে একটি প্রোগ্রামটি সংকলকের হাতে দিতে হবে।


6
"একটি প্রোগ্রাম পাস করতে " <3
পিয়ের আরলাড

5
সুতরাং আপনি যা বলছেন তা হ'ল "সিসি এন'স্ট পাস আন বেস প্রোগ্রাম"।
স্টুয়ার্ট ওলসেন

44

হ্যালো Légèreté ফাইট লা কোর্স এন অরবাইট ,

আমি এখানে জোর দিয়ে বলতে চাই যে আপনি এখানে প্রদত্ত সমস্ত উত্তর অনুসরণ করলেও আপনার বিরামচিহ্নের কারণে আপনার প্রোগ্রামটি এখনও সংকলন করবে না। সেমিকোলনগুলি ফরাসী ভাষায় একটি অ-ব্রেকিং স্পেসের আগে।

আমি নিম্নলিখিতটি সুপারিশ করব:

#inclure <esflux>

ent principal(ent narg, cara** marg)  // entier, nombre d'arguments, valeur des arguments
{
   std::cendehors << "Bonjour le monde !\n" ;
   renvoyer SORTIE_SUCCÈ;
}

লক্ষ্য করুন আমি পরিবর্তন argnকরতে narg, যেমন এতে ফরাসি আরো প্রাকৃতিক আছে (কিছুই hungarian স্বরলিপি যদিও সঙ্গে কাজ করতে)!

সম্পাদনা করুন: দেবদূতের প্রস্তাব অনুসরণ করা


35

খুব সুন্দর কিছু পূর্ববর্তী উত্তরগুলি কভার করা হয়েছে, তবে আমি যদি যোগ করতে পারি:

renvoyer SORTIE_SUCCÈS ; // correct, but bad pratice

এটি শংসাপত্রের অনুমতিপ্রাপ্ত তবে নিম্নলিখিতটি সাধারণত পছন্দ হয়:

capitulation ; // a better, frenchier approach

3
দুটি ফ্রেঞ্চ সি-তে অর্থার্থকভাবে সমান নয়?

17

আপনি ফরাসি প্রাক প্রসেসর রেফারেন্স করতে হবে:

#inclure <Montebourg>

হাম ... অনেক দেরি হয়ে গেছে, এটি অবহেলা করা হয়েছে। নতুন প্রকাশটি এই সপ্তাহে পাওয়া যাবে।


17

আমি বুঝতে পারি এটি এই বিশেষ পরিস্থিতিতে প্রযোজ্য নয়, তবে ফরাসি ভাষায় প্রোগ্রাম করার সময় আপনার বিষয়গুলির লিঙ্গটি মনে রাখা গুরুত্বপূর্ণ important এখানে 2 ধরণের ক্লাস ( genre) genre::masculinsএবংgenre::féminin

এই ক্ষেত্রে:

genre::masculins Hommes {}
genre::féminin Femme {}

তদ্ব্যতীত, thisঅন্য ফাংশনে যাওয়ার সময় ফাংশন কলটি প্রত্যয় না দিয়ে পরামিতি তালিকার সাথে উপসর্গ করা হয়:

genre::masculins Croissant {
    nul nourrir(Hommes hommes) {
        hommes.(ce)manger ;
    }
}

অথবা

genre::féminin Grenouille {
    nul nourrir(Hommes hommes) {
        hommes.(cette)manger;
    }
}

আরও রেফারেন্সের জন্য: উইকিপিডিয়া ওয়ার্ড অর্ডার


15

আপনি যদি মধ্যাহ্নভোজনের সময় (রাত 12-22) পরে পুনরায় চেষ্টা করেন? এছাড়াও, যদি আপনি আরও একটি প্রসেসর পান তবে তারা ধর্মঘটে থাকতে পারেন। তবে আপনি এই (ফরাসী) উইন্ডোজ 7 কমান্ডটি দিয়ে আপনার প্রোকে ফিরে পেতে পারেন:

set max-working-hours-a-week = 35

আটকা পড়লে পুনরাবৃত্তি করুন (তবে প্রতিবারের সংখ্যাটি কম করতে ভুলবেন না!)।


2
+1, এবং আমি মনে করি set pension-starting-age = 62এটিও সহায়তা করতে পারে, set pension-starting-age = 60শীঘ্রই পরিবর্তিত হতে পারে ...
এক্সেল

অবশ্যই, পেনশন-শুরুর বয়সও কৌশলটি করতে পারে! ও আয়েস-জে লা টেস্ট? :-)
সিলভাইন রডরিগ

10

মনে হচ্ছে আপনি FrenChPP++প্যাকেজটি ইনস্টল করতে ভুলে গেছেন । একটি সফল ইনস্টলেশনের পরে FrenChPP++(আপনার সিস্টেমে কোনও বাইনারি প্যাকেজ না থাকলে আপনাকে একটি স্ট্যান্ডার্ড সি ++ কম্পাইলার সংকলন করতে হবে (আমরা অননুমোদিত ব্যাঙের জন্য এই জন্য জি ++ ব্যবহার করার পরামর্শ দিচ্ছি, তবে ঝাঁকুনি ব্যবহার করতেও নির্দ্বিধায়, তবে সতর্কতাগুলি উপেক্ষা করুন)) আপনার একটি নতুন প্রকল্প তৈরি করতে হবে এবং সদ্য তৈরি হওয়া principal.fcppফাইলটিতে এটি অনুলিপি করুন। তারপরে মৃত্যুদন্ড কার্যকর হওয়ার পরে FrenChPP++পূর্বপরিবর্তক (যা Qt এর সংকেতগুলি / স্লট প্রক্রিয়াটি যেভাবে পরিচালনা করে তার সাথে খুব একইভাবে কাজ করে) সমস্ত .fcppফাইলকে বিশ্লেষণ করবে .fcppএবং বৈধ মধ্যে "অনুবাদ" করবে এবং .cppআপনার সিস্টেমের ডিফল্ট সংকলক ব্যবহার করে সেগুলি সংকলন করবে।


3
এখানে একটি লিঙ্ক দেওয়া হয়েছে: github.com/carado/FranC
ভ্যালেন্টিন লরেন্টজ


7

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

এটা না std::cendehors, কিন্তু std::deh(সংক্ষিপ্ত dehors হিসাবে) std::cinঅনুবাদ করে করতে std::ded(জন্য dedans )।

এছাড়াও নোট করুন যে সংকলকগুলি আগে স্বয়ংক্রিয়ভাবে প্রবাহিত হয় না \n, তাই এটি ব্যবহার করা ভাল std::findl( ফিন ডি লিগনে )। সুতরাং এটি এর মতো হওয়া উচিত:

   std::deh << "Bonjour le monde!" << std::findl; 

সম্পাদনা: দুঃখিত, আমি আর একটি ভুল চিহ্নিত করিনি। অবশ্যই সঠিক ফর্মটি গিলিমেটগুলি এর মতো ব্যবহার করছে:

   std::deh << «Bonjour le monde << std::findl; 

2
উদ্ধৃতি চিহ্নগুলির জন্য ভালভাবে চিহ্নিত
jwav

প্রক্রিয়াটি শেষ হওয়ার পরে কি এই সংকলকগুলিকে এখনও আউটপুট ফ্লাশ করতে হয়নি?
অরবিট

1
@ লাইটনেসেসেসিন অরবিত: হ্যাঁ, নীতিগতভাবে আপনি ঠিক বলেছেন, তবে ফরাসী সংস্করণে বাস্তবায়নের পার্থক্যের বিষয়ে সতর্ক থাকুন কারণ ফ্রান্সে ফ্লাশিং অনাকাঙ্ক্ষিত ফলাফলের দিকে নিয়ে যেতে পারে ( en.wikedia.org/wiki/Funch_toilet )।
এক্সেল

5

আপনি সি ++ (বা সি) প্রোগ্রামে ফরাসি কীওয়ার্ড ব্যবহার করতে পারবেন না। আপনার কোড করা উচিত

 #include <iostream>
 //  ^^^  the english word "include" 

এবং একইভাবে

 return EXIT_SUCCESS;

এবং অবশ্যই কোড int main(int argc, char**argv) ইত্যাদি ...

(আপনার এপ্রিল বোকা রসিকতার জন্য ধন্যবাদ!)


9
ওহ সত্যিই? এটি সর্বদা অতীতে আমার জন্য কাজ করে। আমি কি কিছু সংকলক পতাকা সেট করতে পারি?
অরবিট

হতে পারে # নির্ধারিত SORTIE_SUCCÈS এক্সআইT_SUCCESS
জেরি

1
"il est manquant espace ...": যে অনুবাদটি করেছে সে ফরাসী ভাষা জানে না। (অভিজ্ঞতা থেকে: সংকলকের অনুবাদিত সংস্করণগুলি এড়িয়ে চলুন many অনেক প্রযুক্তিগত পদগুলির জন্য অনুবাদগুলির উপর কোনও আনুষ্ঠানিকভাবে প্রতিষ্ঠিত এবং সর্বজনীনভাবে সম্মত নেই, এবং আপনি অনুবাদকগণের পছন্দগুলি অনুমান করার জন্য দ্বিতীয়টি চেষ্টা করার চেষ্টা করবেন) ত্রুটির বার্তাগুলির প্রকৃত অর্থ))
জেমস কানজে

18
@ জামেসকানজে: তাহলে আপনি কী ভাবেন স্প্যানিশ আরও ভাল কাজ করতে পারে? না?
অরবিট

2
ঠিক আছে, তবে সি ++ ট্রান্সলেস্ট করার চেষ্টা রয়েছে, ফ্রেঙ্ক গিথুব / কারাডো / ফ্রেঙ্ক দেখুন , এটি অনেকটা #
ডেফাইন

4

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

আপনাকে 2003-পূর্বের একটি সংকলক ব্যবহার করতে হবে, অথবা তারা শীঘ্রই পরিস্থিতি ফিরিয়ে আনার পরিকল্পনা করছে কিনা তা জানতে http://www.whitehouse.gov/contact/submit-questions- এবং- মন্তব্যগুলিতে একটি মেইল ​​প্রেরণ করতে হবে।


3

প্রথমত, আপনার প্রয়োজন

#inclure <clibstd>

আপনি SORTIE_SUCCÈS ধ্রুবক ব্যবহার করতে সক্ষম হওয়ার আগে।

আপনার সি ++ কোডের সাথে আর একটি সমস্যা হ'ল আপনি std :: ndণ ব্যবহার করতে ভুলে গিয়েছেন এবং এর পরিবর্তে আপনার আউটপুট স্ট্রিংয়ে '\ n' ব্যবহার করেছেন - এটি ফ্রেঞ্চ কোডে কাজ করবে না, সম্ভবত, কেবল ইংরেজী এবং রাশিয়ান ভাষায় লিখিত কোড অনুমোদিত এটা করতে.

আরও বেশি, আপনি ভুল ইনডেন্টেশন ব্যবহার করেছেন (ফরাসী ভাষায় জিসিসির ফাঁকির পরিবর্তে ট্যাব প্রয়োজন) এবং ব্রেস প্লেসমেন্ট (যখনই সম্ভব আপনার একই লাইনে ব্রেস স্থাপন করা দরকার, তাদের মধ্যে কোনও ফাঁকির অনুমতি নেই); তাদের অপরিবর্তিত রাখলে আপনার কোডটিতে "ভাস নে কননায়েজ পাস ভোটার ট্যাবুলেশন, জ্যাকস" এবং "পাস এসেজজ ডি'মোর এন্ট্রি প্রশংসায়" রানটাইম ত্রুটি তৈরি হবে।

আমি এই লাইনগুলি পরিবর্তন করার পরে, কোডটি সফলভাবে সংকলিত। এটি এখনও চালানো হয়নি, সম্ভবত এখানে নির্দিষ্ট কারণগুলির জন্য ।

স্নিপেট: http://ideone.fr/sQbL6E

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