কম্পিউটার টিউটোরিয়াল

Cygwin ব্যবহার করে উইন্ডোজে লিনাক্স প্রোগ্রাম কম্পাইল করা

উইন্ডোজ এবং লিনাক্স দুটি খুব আলাদা সিস্টেম, এবং তাই একে অপরকে পোর্ট করা প্রোগ্রামها প্রায়শই সহজ নয়, বিশেষ করে GUI প্রোগ্রামের ক্ষেত্রে। যদিও অনেক ক্রস-প্ল্যাটফর্ম লাইব্রেরি এবং SDK আছে, পোর্টেবিলিটি খেয়ালে না লেখা নেটিভ প্রোগ্রামها পোর্ট করা কঠিন।

লিনাক্সের জন্য লেখা প্রোগ্রাম উইন্ডোজে কম্পাইল ও রান করার জন্য একটি সমাধান আছে: Cygwin। Cygwin প্রজেক্ট হলো উইন্ডোজের জন্য সবচেয়ে সাধারণ টুল এবং কম্পাইলারها (ব্যাশ শেল এবং GNU কম্পাইলার চেইন সহ) এর সংগ্রহ। এছাড়াও এতে একটি লাইব্রেরি রয়েছে যা কম্প্যাটিবিলিটি লেয়ার প্রদান করে যাতে লিনাক্স-স্পেসিফিক API কল করার প্রোগ্রামها কম্পাইল করা যায়। Cygwin একটি এমুলেটর বা ভার্চুয়াল মেশিন নন, এবং এটি লিনাক্স বাইনারি উইন্ডোজে রি-কম্পাইল ছাড়া রান করতে দেয় না।

Cygwin ইনস্টলেশন পেজে যান এবং আপনার উইন্ডোজ ভার্সনের অনুযায়ী ৩২-বিট বা ৬৪-বিট সেটআপ এক্সিকিউটেবল ডাউনলোড করুন। সেটআপ প্রোগ্রাম চালান। Next এবং আবার Next ক্লিক করুন ("Install from Internet"-এ)। ডিফল্ট ডিরেক্টরি "C:\cygwin"। এটি পরিবর্তন করা যায়, কিন্তু 특별한 কারণ না থাকলে ডিফল্ট সেরা। Next, Next, এবং আবার Next ক্লিক করুন।

Cygwin প্রজেক্টের সারা বিশ্বে মিরর সাইট আছে; আপনার লোকেশনের জন্য সেরা যেটি মনে হয় সেটি বেছে নিন এবং Next ক্লিক করুন। এখন আপনাকে ইনস্টল করার প্যাকেজها বেছে নিতে হবে। উইন্ডোজে সহজ লিনাক্স প্রোগ্রাম কম্পাইল করার জন্য আপনাকে GNU কম্পাইলার চেইন (GCC) দরকার যেটি C এবং C++ কম্পাইলার দেয়।

"gcc" টাইপ করুন সার্চ বক্সে এবং প্যাকেজ লিস্টে "Devel"-এর পাশের ছোট প্লাস চিহ্নে ক্লিক করুন। "gcc-core" এবং "gcc-g++" খুঁজুন এবং প্রতিটির জন্য "Skip"-এ ক্লিক করুন। "Skip" শব্দটি ভার্সন নম্বরে পরিবর্তন হবে এবং "Bin?" কলামের "n/a" চেকবক্সে পরিণত হবে। "make" টাইপ করুন এবং "Devel"-এর অধীনে "make" খুঁজে "Skip"-এ ক্লিক করুন ইনস্টলের জন্য মার্ক করতে। "wget" খুঁজুন এবং "Web"-এর থেকে ইনস্টলের জন্য মার্ক করুন। নিচের উদাহরণ বিল্ড করার জন্য "libiconv"-ও দরকার; সেটি খুঁজে ইনস্টলের জন্য মার্ক করুন।

Next ক্লিক করুন। ইনস্টলার অন্যান্য প্রয়োজনীয় প্যাকেজها চেক করবে ডিপেন্ডেন্সি রেজলভ করার জন্য। সুপারিশها গ্রহণ করতে Next ক্লিক করুন।

সব প্যাকেজ ডাউনলোড ও ইনস্টল হয়ে গেলে, শেষ ধাপগুলো অনুসরণ করুন ইনস্টলার এক্সিট করার পর্যন্ত। "Cygwin Terminal" চালু করুন লিনাক্স-সদৃশ ডেভেলপমেন্ট এনভায়রনমেন্টে প্রবেশ করতে। টার্মিনালে আপনি উইন্ডোজ কমান্ডها যেমন "dir" ব্যবহার করবেন না, বরং শেল কমান্ডها যেমন "ls" ব্যবহার করবেন।

উইন্ডোজে লিনাক্স প্রোগ্রাম কম্পাইল করার প্রদর্শনের জন্য, আমরা W3-এর HTML-XML প্যাকেজ ব্যবহার করব। এটি কী করতে পারে সেটি জানতে "How to Manipulate HTML and XML Files from the Command Line" দেখুন।

সোর্স ফাইলها "wget"- দিয়ে ডাউনলোড করুন:

wget https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-6.7.tar.gz

আর্কাইভ ফাইল আনপ্যাক করুন:

tar -zxf html-xml-utils-6.7.tar.gz

সোর্স ফাইলها এখন "html-xml-utils-6.7" ডিরেক্টরিতে। সে ডিরেক্টরিতে প্রবেশ করুন:

cd html-xml-utils-6.7

ফাইলها বিল্ড করার আগে, "configure" শেল স্ক্রিপ্ট চালাতে হবে Makefile জেনারেট করতে (বিল্ড ইনস্ট্রাকশন) যা এই বিল্ড এনভায়রনমেন্টের জন্য উপযুক্ত। লিনাক্সে (এবং Cygwin-এ) সোর্স থেকে প্যাকেজ বিল্ড করার সময় এটি একটি সাধারণ ধাপ।

./configure

"configure" শেষ হলে, "make" দিয়ে বিল্ড শুরু করুন:

make

বিল্ড মাঝপথে ফেল করবে। আমি দুটি মনে ছিল: অন্য প্রজেক্টে স্যুইচ করব কিনা বা HTML-XML-utils-এ লড়াই চালিয়ে যাব। আমি দ্বিতীয়টি বেছে নিলাম কারণ এটি দেখায় Cygwin-এ লিনাক্স প্রোগ্রাম কম্পাইল করার সময় সবকিছু সুগম নন। এই সমস্যার সমাধান সহজ। এরর মেসেজ দেখায় লিঙ্কার "iconv" লাইব্রেরি খুঁজে পাচ্ছে না। লিংক কমান্ড দেখলে লাইব্রেরি স্পেসিফাইড নেই। দ্রুত সমাধান হলো কমান্ড ম্যানুয়ালি চালিয়ে লিঙ্কারকে libiconv ব্যবহার করতে বলা। "সঠিক" উপায় হলো Makefile-এ গিয়ে খুঁজে বের করা কেন কাজ করছে না।

নিচের কমান্ড চালান, শেষে "-liconv" যোগ করেই:

gcc -g -O2 -o hxindex.exe hxindex.o scan.o html.o openurl.o url.o heap.o class.o errexit.o connectsock.o types.o tree.o genid.o dtd.o headers.o dict.o fopencookie.o -liconv

"hxindex.exe" ফাইল বিল্ড হয়ে গেলে, আবার "make" টাইপ করুন বাকি বিল্ড চালিয়ে যেতে। "make" যেভাবে কাজ করে: এটি চেক করে কী বিল্ড হয়েছে কী না, এবং তারপর বিল্ড প্রক্রিয়াকে উপযুক্ত পয়েন্ট থেকে চালিয়ে যায়। যেহেতু আমরা ম্যানুয়ালি "hxindex.exe" বিল্ড করেছি, "make" শুধু তার লিস্টের নেক্সট বাইনারি নিয়ে কাজ শুরু করে।

"make" কমপ্লিট হলে, html-xml-utils-6.7 ডিরেক্টরিতে সব .exe ফাইল পাবেন।

Cygwin ব্যবহারে আটকে থাকলে FAQ, ডকুমেন্টেশন, এবং মেইলিং লিস্ট দেখুন। উপরের ধাপগুলোর সাথে কোনো সমস্যা হলে নিচে কমেন্ট করুন।

  1. লিনাক্স-এ উইন্ডোজ ১০ বুটেবল USB তৈরির পদ্ধতি

  2. উইন্ডোজ সার্চ সমস্যা সমাধান করুন: উইন্ডোজ ১০-এ কুইক ফিক্স

  3. লিনাক্সে বুটেবল উইন্ডোজ ১০ USB তৈরি করার ধাপে ধাপে গাইড

  4. রিমোট এক্সেসের মাধ্যমে একাধিক পিসিতে উইন্ডোজ ১০ স্টার্টআপ প্রোগ্রাম দক্ষতার সাথে পরিচালনা করুন