কীভাবে লিনাক্সে সি প্রোগ্রাম কম্পাইল ও রান করতে হয়? (How to compile and run C program in Linux Bangla tutorial )
C Program রান করানোর জন্য GCC কম্পাইলার লিনাক্স অপারেটিং সিস্টেম গুলির বেশিরভাগ গুলিতেই Installed থাকে ।Run C program on Linux |
কম্পাইলার
আমরা বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার সময় কম্পাইলার ব্যবহার করে থাকি প্রোগ্রামকে মেশিন লেভেল ল্যাঙ্গুয়েজে কনভার্ট করে সিস্টেমে রান করানোর জন্য যেমন উইন্ডোজে Turbo C++, Dev C++, CodeBlocks প্রভৃতি আমরা ব্যবহার করেছি। তেমনি লিনাক্সে যেকোনো C প্রোগ্রাম রান করানোর জন্য GCC Compiler ব্যবহার করা হয়। যা ব্যবহার করার জন্য Linux এর Terminal এ কিছু command লিখে লিখে কাজ করাতে হয়।এবার আমরা শিখব কীভাবে লিনাক্সে C Program রান করব। যেহেতু Ubuntu লিনাক্সের একটি জনপ্রিয় ডিস্ট্রিবিউশন তাই আজ Ubuntu তে C Program রান করব যদিও অন্যান্য ডিস্ট্রিবিউশন গুলির ক্ষেত্রেও পদ্ধতি প্রায় একই।
কীভাবে Ubuntu তে C Program কম্পাইল ও রান করতে হয়
- সবার প্রথমে আমাদের ওপেন করতে হবে লিনাক্সের Terminal যার জন্য Show application menu তে গিয়ে সার্চ করলেই পেয়ে যাব। অথবা ctrl + alt+ t এই শর্টকাটটি কিবোর্ডে প্রেস করলেই Terminal ওপেন হয়ে যাবে।
Open Terminal |
- এরপর আমাদের নতুন কোন ফোল্ডার তৈরি করতে হবে বা কোন existing folder যেতে হবে যেখানে C Program টি সেভ করে রাখব। নতুন ফোল্ডার তৈরি করার কমান্ড হল mkdir foldername যেমন mkdir programming
Folder Creation |
- এর ফলে programming এই নামের একটি ফোল্ডার তৈরি হয়ে যাবে এবার সেই ফোল্ডারটি access করতে হবে এর জন্য কমান্ড হল cd foldername এখানে cd programming এবার আমরা programming এই ফোল্ডারের মধ্যে চলে এসেছি
Change Directory |
- এখন তৈরি করতে হবে প্রোগ্রাম ফাইল যেই ফাইলের মধ্যে আমাদের সি প্রোগ্রামিং এর কোড লিখে রাখব ,অবশই সেই ফাইলটির এক্সটেনশন হবে .c যেমন program.c যার ফলে সিস্টেম বুঝতে পারবে এটি একটি সি প্রোগ্রামের ফাইল । আর এই ফাইল তৈরি করার জন্য কমান্ড রয়েছে gedit filename এখানে gedit program.c
C File Creation |
- এর ফলে Windows মতো একটি নোটপ্যাডের মতো একটি উইন্ডো ওপেন হবে যেখানে কিছু টেক্সট লিখে সেভ করে রাখা সম্ভব। আপনি চাইলে Sublime, Atom এই জাতীয় টেক্সট এডিটর ইন্সটল করে তা ব্যবহার করে ফাইল create করতে পারেন।
Basic C Program |
- এবার সেই ফাইলে C Program টি লিখতে হবে। প্রোগ্রাম লিখে ফাইল এ গিয়ে বা ctrl + s দিয়ে সেভ করে দিতে হবে যার ফলে programming এই ফোল্ডারে program.c নামের একটি ফাইল তৈরি হবে। এবার এই gedit এর উইন্ডো ক্লোজ করে দিতে হবে।
C File Created |
- আর তারপর ফাইলটিকে কম্পাইল করতে হবে যার কমান্ড হল gcc filename অথবা cc filename আর এখানে gcc program.c অথবা cc program.c এর ফলে প্রোগ্রামটি কম্পাইল হবে আর কম্পাইলের সময় কোন এরর বা ওয়ার্নিং থাকলে সেটা Terminal এ show করবে।
Compile C Program File |
- আর এরর না থাকলে কিছুই দেখাবে না অন্যদিকে a.out নামের একটি এক্সিকিউটেবল ফাইল তৈরি হবে।
Executable File Created |
- সেই ফোল্ডারে এবার এই a.out নামের এক্সিকিউটেবল ফাইল কে রান করাতে হবে, যাকে আমরা রান করাতে পারব ./ এই কমান্ডের সাহায্যে এই ক্ষেত্রে যা হল ./a.out
C Program Run |
- আর যদি আমরা চাই এক্সিকিউটেবল ফাইলটি আমাদের ইচ্ছা মত নামের তৈরি করব সেক্ষেত্রে কম্পাইলেশনের command এ একটু চেঞ্জ আনতে হবে যা gcc filename -o executable_file_name যেমন এখানে gcc program.c -o execute যার ফলে execute এই নামের এক্সিকিউটেবল ফাইল তৈরি হবে।
Custom Executable File Creation |
Custom Executable File Created |
- যেটাকে রান করাব ./ এই কমান্ড দিয়ে এই ক্ষেত্রে যা হবে
Run Custom Executable File |
- আর যদি আমরা ইচ্ছেমত এক্সিকিউটেবল ফাইল তৈরি না করতে চাই সেখানে প্রতিবার a.out ফাইল তৈরি বা রিপ্লেস হতে থাকবে। আমি সুবিধার জন্য বারবার
কম্পাইলেশনে সমস্যা
যদি আপনার কম্পিউটারে কম্পাইলেশনে সমস্যা দেখায় যে Install GCC সেক্ষেত্রে আপনার সিস্টেমে GCC Install করতে হবে।আবার কিছু কিছু সি প্রোগ্রামে আমাদের math.h এই headerfile এর কিছু function use করতে হয় আমাদের প্রোগ্রামে সেক্ষেত্রে কম্পিলেশনে এরর দেখাবে শুধু gcc filename কমান্ড ব্যবহার করলে সেক্ষেত্রে এই কমান্ডের সাথে -lm যোগ করতে হবে যেমন gcc filename -lm এই কমান্ডটি।
যেমন -
#include<stdio.h>
#include<math.h>
int main(){
int lb,ub,i,j,f=0;
printf("Enter the lower bound ");
scanf("%d",&lb);
printf("Enter theupper bound ");
scanf("%d",&ub);
for(i=lb;i<=ub;i++){
f=0;
for(j=2;j<=sqrt(i);j++){
if(i%j==0){
f=1;
break;
}
}
if(f==0){
printf("%d, ",i);
}
}
return(0);
}
এই প্রোগ্রামটিতে sqrt() ফাংশন ব্যবহার করার জন্য কম্পাইলেশনে -lm যোগ করতে হবে যেমন gcc filename -lm
তাই মনে রাখতে হবে math.h এই header file ব্যবহার করলেই কম্পাইলেশনে -lm যোগ করতে হবে। আবার string এর প্রোগ্রাম করার সময় gets() puts() ফাংশন কাজ করে না তাই space সহ string input নিতে gets() এর alternative হিসাবে
scanf("%[^\n]",a);
ব্যবহার করা যেতে পারে , এক্ষেত্রে a হল একটি string array যেখানে string টি store থাকবে।
আপনার কম্পাইলেশনে কোন সমস্যা হলে কমেন্টে জানান ,তার সলিউশন দেবার যথাসাধ্য চেষ্টা করব। আর পোস্টটি ভালো লাগলে অবশ্যই জানাবেন এবং ভবিষ্যতে এমন পোস্ট আরও পেতে সাথে থাকুন Technical Bhaskar ব্লগের সাথে।
0 মন্তব্যসমূহ