আমি লিনাক্সে নতুন। আমি উবুন্টু ১১.০৪ ব্যবহার করছি এবং এতে সি ++ প্রোগ্রাম কীভাবে সংকলন করতে এবং চালিত করতে হয় তা আমি জানি না। লিনাক্সে একটি সি ++ প্রোগ্রাম সংকলন এবং সম্পাদন করার জন্য আমার কমান্ডগুলি জানতে হবে ।
আমি লিনাক্সে নতুন। আমি উবুন্টু ১১.০৪ ব্যবহার করছি এবং এতে সি ++ প্রোগ্রাম কীভাবে সংকলন করতে এবং চালিত করতে হয় তা আমি জানি না। লিনাক্সে একটি সি ++ প্রোগ্রাম সংকলন এবং সম্পাদন করার জন্য আমার কমান্ডগুলি জানতে হবে ।
উত্তর:
আপনার সি ++ কোডটি সংকলন করতে, ব্যবহার করুন:
g++ foo.cpp
উদাহরণে foo.cpp হ'ল প্রোগ্রামটি সংকলিত হওয়ার নাম।
এটি একই ডিরেক্টরিতে এক্সিকিউটেবল উত্পাদন করবে a.outযা আপনি আপনার টার্মিনালে এটি টাইপ করে চালাতে পারেন:
./a.out
g ++ ইতিমধ্যে আপনার $ PATH এ থাকা উচিত, সুতরাং আপনার /usr/bin/g++স্পষ্টভাবে কল করার দরকার নেই , তবে আপনি যে কোনও ক্ষেত্রেই ব্যবহার করতে পারেন।
foo.cppআপনি যে কমান্ডটি চালাচ্ছেন একই ডিরেক্টরিতে থাকা উচিত। যদি কোনও সন্দেহ থাকে তবে আপনি টাইপ করে নিশ্চিত করতে পারেন যে আপনি একই ডিরেক্টরিতে রয়েছেন ls foo.cppবা head foo.cpp(যদি আপনার সঠিকটির সাথে কাজ করছেন যাচাই করার দরকার হয় তবে foo))
@ কন-এফ-ব্যবহার দ্বারা উল্লিখিত হিসাবে, সংকলক সাধারণত এই ফাইলটি কার্যকর করতে সক্ষম করে তোলে তবে তা না হলে আপনি নিজে এটি করতে পারেন (সুতরাং কার্যকর করার আদেশ ./a.outবা সমমানের আদেশটি কাজ করবে):
chmod +x ./a.out
সংকলিত আউটপুট ফাইলটির নাম নির্দিষ্ট করতে, যাতে এটি নাম না দেওয়া হয় a.out, -oআপনার g ++ কমান্ডটি ব্যবহার করুন।
যেমন
g++ -o output foo.cpp
এটি foo.cppনামের বাইনারি ফাইলটি সংকলন করবে outputএবং আপনি ./outputসংকলিত কোডটি চালাতে টাইপ করতে পারেন ।
a.outএই ক্ষেত্রে) সম্পাদনযোগ্য করে তোলে । যদি না আপনি টাইপ করে এটি করতে পারেন: chmod +x a.out। যখন আপনার সংকলিত প্রোগ্রামটি এক্সিকিউটেবল হয়, আপনি এটিকে টাইপিং ./a.out- ডট এবং স্ল্যাশ ইঙ্গিতটি চালাতে পারেন যে আপনি এটি সম্পাদন করতে চান।
আমি এখানে দুটি অনুমান করছি:
উবুন্টুতে একটি সি ++ প্রোগ্রাম সংকলনের সহজ উপায়, বা অন্য কোনও লিনাক্স ডিস্ট্রো সেই বিষয়ে টাইপ করা
g++ main.cpp -o main
g++ -o main main.cppসমানভাবে বৈধ।উপরের কমান্ডগুলি ধরে নিয়েছে যে আপনি ইতিমধ্যে উত্স ফাইলগুলির অবস্থানটিতে রয়েছেন, তবে উত্স ফাইল এবং টার্গেট আউটপুট ফাইল উভয়ই ডিরেক্টরি হিসাবে নির্দিষ্ট করা যেতে পারে। উদাহরণ স্বরূপ
g++ ~/Desktop/main.cpp -o ~/Projects/main
আপনার ডেস্কটপে অবস্থিত একটি সি ++ উত্স ফাইলটি সংকলন করবে Projectsএবং আপনার হোম ডিরেক্টরিতে একটি ফোল্ডারে এক্সিকিউটেবল বাইনারি স্থাপন করবে । এই এক্সিকিউটেবল চালাতে, চালান ./Projects/main।
এইভাবে আমি g ++ দিয়ে সংকলন করতে চাই।
$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp
-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the
name of our source code file
-p: Generate extra code to write profile information suitable for the analysis program prof
-p: Generate extra code to write profile information suitable for the analysis program prof.
আপনার জি ++ প্রয়োজন, কারণ জিসিসি সহজে সিপিপি ফাইল সংকলন করতে পারে না।
সি কোড লিখতে আপনাকে ভিএম বা ইমাস শিখতে হবে।
আপনার টার্মিনালে এটি চেষ্টা করুন:
একটি পরীক্ষা প্রোগ্রাম টাইপ করুন এবং এটি সংরক্ষণ করুন:
$vim hello.cc
কম্পাইল hello.ccছ সঙ্গে ++,:
$g++ hello.cc -o hello
এটি কার্যকর করুন:
$./hello
এখানে ./অর্থ ফাইলটি বর্তমান ডিয়ারের অধীনে রয়েছে।
viতবে এতে কিছু আসে যায় না। আপনার কোনও নির্দিষ্ট সম্পাদককে পরামর্শ দেওয়া থেকে দূরে সরে যাওয়া উচিত, প্রত্যেকে নিজেরাই তার নিজের ব্যবহার করুন।
g++gccকিছু পূর্বনির্ধারিত সি ++ ম্যাক্রো এবং বিভিন্ন ডিফল্ট বিকল্প / পতাকা সহ (জিএনইউ সংকলক সংগ্রহ) এর একটি ফ্রন্ট-এন্ড ।
সি ++ কোড সহ সংকলন gccকরা সহজ কারণ যখন g++কোনও সংখ্যক কারণে না পাওয়া যায়, আসলে এটি সি ++ লাইব্রেরির সাথে সংযোগ স্থাপন -lstdc++এবং জিসিসিকে ইনপুটটিকে সি ++ কোড হিসাবে গণ্য করার জন্য জানানো হয় (হয় কোনও .Cএক্সটেনশন ব্যবহার করে , বা ভাষাটি জোর করে) -x)
অন্যান্য বৈধ C ++ ফাইলের নাম প্রত্যয়: .cc, .cp, .cxx, .cpp, .CPP,.c++
উদাহরণ:
gcc cpp_code.C -lstdc++ বড়সির এক্সটেনশন ( .C) এটি জি সি সি এর জন্য একটি সি ++ ফাইল তা জানা গুরুত্বপূর্ণ।
বা স্পষ্টভাবে ইনপুট ভাষা নির্দিষ্ট করে:
gcc -x c++ cpp_code.txt -lstdc++ এক্সটেনশন কিছু হতে পারে, এমনকি কিছু না
ডিফল্টরূপে ফলাফল (একটি সফল সংকলনের পরে) একটি a.outফাইল যা চালানো যেতে পারে./a.out