সি ++ উত্স কোডটি কীভাবে সংকলন করবেন ("iostream.h পাওয়া গেল না" ত্রুটি)?


20

আমি সি ++ বা কোনও প্রোগ্রামিং ভাষা নিয়ে আলোচনা করতে চাই না! আমি হিলিওলোর্ড.পি.পি. সংকলন সম্পর্কে লিনাক্স উবুন্টুতে আমি কী ভুল করছি তা জানতে চাই!

আমি সি ++ শিখছি তাই আমার পদক্ষেপগুলি হ'ল:

হ্যালো.সি.পি খুলুন এবং এই লিখুন

#include <iostream.h>
int main()
{
    cout << "Hello World!\n";`
    return 0;
}

সুতরাং, এর পরে আমি এটি টার্মিনালে চেষ্টা করেছি

g++ hello.cpp

এবং আউটপুট হয়

hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.

আপনি কি পরামর্শ দিচ্ছেন? আমার জন্য কোনও ধাপে ধাপে গাইড? ধন্যবাদ!


2
যদি কেউ এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোটিং বিবেচনা করে থাকে: এটি সত্যই একটি প্ল্যাটফর্ম-নির্দিষ্ট সমস্যা, কারণ উইন্ডোজের সর্বাধিক জনপ্রিয় সি ++ সংকলক (মাইক্রোসফ্ট ভিজ্যুয়াল সি ++) এই বাক্য গঠনটি গ্রহণ করে তবে বেশিরভাগ অন্যান্য সংকলক ( g++উবুন্টু সহ ) এটি গ্রহণ করবেন না।
এলিয়াহ কাগন

# অন্তর্ভুক্ত <iostream> নেমস্পেস স্ট্যান্ড ব্যবহার করে; int main () {cout << "হ্যালো ওয়ার্ল্ড"; প্রত্যাবর্তন 0; work এটি কাজ করতে পারে ...

উত্তর:


43

আপনার ব্যবহার করা উচিত #include <iostream>, না iostream.h; ফর্ম খুব পুরানো এবং বছর ধরে অসমর্থিত হয়েছে।

আপনি একাধিক আপনি সম্ভবত উপর জানতে চাই পড়তে পারেন বনাম অ এখানে ফরম: http://members.gamedev.net/sicrane/articles/iostream.html

(প্লাস, আপনার লেখা std::coutবা একটি লাইন থাকা উচিত using namespace std;অন্যথায় আপনার পরবর্তী ত্রুটি সংকলক সম্পর্কে কোনও সংজ্ঞা না পাওয়া সম্পর্কে হবে cout))


4
@ গ্যাব্রিয়েল সি ++ এর দীর্ঘ ইতিহাস রয়েছে, এটি 1980 এর মাঝামাঝি। এখন বেশ কয়েকটি প্রকাশিত মান রয়েছে, যার সর্বশেষতমটি (সি ++ 11) এই বছরের শুরুর দিকে প্রকাশিত হয়েছে এবং পূর্ববর্তী একটি (সমস্ত সংকলক আজ অনুসরণ করেন) 2003 (সি ++ 03) এর তারিখের। আপনি যে লিঙ্কটি যুক্ত করেছেন সেটিকে তার চেয়ে অনেক বেশি বয়স্ক বলে মনে হচ্ছে, সংকলক সফ্টওয়্যার থেকে এটি উল্লেখ করে বিচার করা (উইকিপিডিয়া অনুসারে, বোরল্যান্ড টার্বো সি ++ 1994 সালে বন্ধ করা হয়েছিল)। আপনি যদি C ++ 03 স্ট্যান্ডার্ড অনুসরণ করে টিউটোরিয়াল চয়ন করেন, আপনার কোড আজ উপলব্ধ যে কোনও লিনাক্স বিতরণে কাজ করবে।
রিকার্ডো মুরি

1
: আপনার প্রশ্নের মত @gabriel মনে হচ্ছে ইতিমধ্যেই Stackoverflow উত্তর হয়েছে stackoverflow.com/questions/909323/...
Riccardo Murri

1
আপনার প্রয়োজনও হতে পারে: sudo apt-get ইনস্টল বিল্ড-আবশ্যক
ডেভিড 6

2
@ ডেভিড:: আমি বিল্ড- অ্যাসোসিয়েশন ইনস্টল করেছি তবে iostream.hআমার সিস্টেমে নেই। প্রকৃতপক্ষে, সি ++ শিরোনাম ফাইলগুলি libstdc ++ - dev দ্বারা ইনস্টল করা হয় , যা সি ++ সংকলক প্যাকেজ জি ++ এর দ্বারা প্রয়োজনীয়, যা পরিবর্তে বিল্ড- আবশ্যক দ্বারা প্রয়োজনীয় । সুতরাং, না, আপনাকে সাধারণ সি ++ প্রোগ্রামগুলি সংকলন করার জন্য বিল্ড-অপরিহার্য প্রয়োজন হবে না ; g++প্যাকেজ ইনস্টল করা যথেষ্ট।
রিকার্ডো মুরি 10

1
শুধু উপসর্গ coutব্যতিরেকে কাজ করার পক্ষে std::, using std::cout;তার চেয়ে ভাল using namespace std;। এমনকি একাধিক usingবিবৃতি (ব্যতীত namespace) সাধারণত ভাল, যেহেতু আপনি stdযে নামটি চান না সেই নাম স্থানটি থেকে আপনি সনাক্তকারী আনেন না এবং আপনার নিজের প্রোগ্রামে নামের সাথে বিরোধ করতে পারে।
এলিয়াহ কাগন

15

আপনি পরিবর্তন করা উচিত iostream.hকাছে iostream। আপনারা যেমন পাচ্ছেন iostream.hঠিক iostreamতেমন ত্রুটিও পেয়েছিলাম, কিন্তু যখন আমি ন্যায়পদে পরিবর্তন করেছি , এটি সঠিকভাবে কাজ করেছে। হয়তো এটি আপনার জন্যও কাজ করবে।

অন্য কথায়, লাইনটি বলে যে এটি পরিবর্তন করে:

#include <iostream.h>

পরিবর্তে এটি বলুন:

#include <iostream>

স্ট্যান্ডার্ডে সংজ্ঞায়িত হিসাবে সি ++ স্ট্যান্ডার্ড লাইব্রেরি শিরোনাম ফাইলগুলির .hএক্সটেনশন নেই।

রিকার্ডো মুরির উত্তর হিসাবে উল্লিখিত হয়েছে , আপনাকে coutএর সম্পূর্ণরূপে যোগ্য নামেও কল করতে হবে std::cout, অথবা এই দুটি লাইনের একটি থাকতে হবে (সাধারণত আপনার #includeনির্দেশের নীচে তবে অন্য কোডের উপরে):

using namespace std;
using std::cout;

দ্বিতীয় উপায়টিকে বিশেষত গুরুতর প্রোগ্রামিং প্রকল্পগুলির পক্ষে অগ্রাধিকারযোগ্য হিসাবে বিবেচনা করা হয়, যেহেতু এটি কেবলমাত্র নেমস্পেসে std::coutসমস্ত নাম আনার পরিবর্তে প্রভাব ফেলে std(কিছু অংশ সম্ভবত আপনার প্রোগ্রামে ব্যবহৃত নামগুলিতে হস্তক্ষেপ করতে পারে)।


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