আমি লিনাক্সে নতুন। আমি উবুন্টু ১১.০৪ ব্যবহার করছি এবং এতে সি ++ প্রোগ্রাম কীভাবে সংকলন করতে এবং চালিত করতে হয় তা আমি জানি না। লিনাক্সে একটি সি ++ প্রোগ্রাম সংকলন এবং সম্পাদন করার জন্য আমার কমান্ডগুলি জানতে হবে ।
আমি লিনাক্সে নতুন। আমি উবুন্টু ১১.০৪ ব্যবহার করছি এবং এতে সি ++ প্রোগ্রাম কীভাবে সংকলন করতে এবং চালিত করতে হয় তা আমি জানি না। লিনাক্সে একটি সি ++ প্রোগ্রাম সংকলন এবং সম্পাদন করার জন্য আমার কমান্ডগুলি জানতে হবে ।
উত্তর:
আপনার সি ++ কোডটি সংকলন করতে, ব্যবহার করুন:
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