संकलन प्रक्रिया किसी भी C++ कोडिंग प्रोजेक्ट का एक बड़ा हिस्सा है। आपको एक ऐसे कंपाइलर की आवश्यकता है जो प्रभावी और सरल हो, साथ ही विभिन्न प्रकार की कार्यक्षमता भी प्रदान करता हो। यहीं पर G++ कंपाइलर आता है। यह कमांड लाइन से सीधे आपकी संकलन आवश्यकताओं के लिए विभिन्न प्रकार के फ़ंक्शन प्रदान करता है। यहां हम आपको दिखाते हैं कि इस बेहतरीन टूल के साथ कैसे शुरुआत करें।
G++ क्या है?
G++ को एक C++ कंपाइलर के रूप में सबसे अच्छा वर्णित किया जा सकता है जो आपकी कमांड लाइन से चलता है। इसे फ्री सॉफ्टवेयर फाउंडेशन द्वारा जारी किया गया था और यह GCC (GNU कंपाइलर संग्रह) का हिस्सा है। यह आपके कोड को, जो एक उच्च-स्तरीय प्रोग्रामिंग भाषा (इस मामले में, C++) में लिखा गया है, एक निम्न-स्तरीय भाषा में बदलकर एक निष्पादन योग्य फ़ाइल में बदल देता है जिसे कंप्यूटर द्वारा समझा जाता है।
इंस्टॉलेशन
अधिकांश लिनक्स इंस्टॉलेशन G++ के साथ बॉक्स से बाहर आते हैं। हालांकि, यदि आपका पसंदीदा डिस्ट्रो नहीं करता है, तो यहां साथ चलें और सीखें कि इसे लिनक्स के कुछ सबसे सामान्य वितरणों पर कैसे इंस्टॉल किया जाए।
उबंटू और डेबियन पर, apt पैकेज मैनेजर का उपयोग करके इसे इंस्टॉल करें:
sudo apt update && sudo apt install g++
फेडोरा और सेंटओएस पर, yum पैकेज मैनेजर का उपयोग करके इसे इंस्टॉल करें:
sudo yum install g++
आप इसे pkgs.org से एक पैकेज के रूप में भी डाउनलोड कर सकते हैं। यह Curl टूल का उपयोग करके किया जा सकता है:
sudo curl https://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/g++_10.2.1-1_amd64.deb -O
आप dpkg उपयोगिता का उपयोग करके पैकेज इंस्टॉल कर सकते हैं:
sudo dpkg -i g++.deb
यह जांचने के लिए कि G++ इंस्टॉल है या नहीं, --version फ्लैग का उपयोग करें:
g++ --version
बुनियादी उपयोग
अब जब G++ इंस्टॉल हो गया है, तो आप इसका उपयोग अपनी संकलन आवश्यकताओं के लिए शुरू कर सकते हैं।
सबसे पहले, --help फ्लैग का उपयोग करके मैनुअल देखना उपयोगी है:
g++ --help
कभी-कभी कंपाइलर और इसकी सेटिंग्स के बारे में अतिरिक्त जानकारी देखना उपयोगी होता है। आप --dumpspecs फ्लैग का उपयोग करके कंपाइलर के बिल्ट-इन स्पेक स्ट्रिंग्स को प्रदर्शित कर सकते हैं:
g++ --dumpspecs
यह आपको इसकी क्षमताओं और विभिन्न विकल्पों का एक बुनियादी अवलोकन देगा।
G++ का उपयोग करके बुनियादी संकलन करने के लिए, निम्न प्रारूप का उपयोग करें:
g++ [file]
यदि हमारे पास "main.cpp" नाम की एक फ़ाइल है, उदाहरण के लिए, हम इसे निम्न टाइप करके संकलित कर सकते हैं:
g++ main.cpp
संकलित निष्पादन योग्य फ़ाइल डिफ़ॉल्ट रूप से "a.out" नामित है।
इसे निम्न टाइप करके चलाएं:
./a.out
यदि आप संकलित निष्पादन योग्य फ़ाइल का नाम निर्दिष्ट करना चाहते हैं, तो -o फ्लैग का उपयोग करके ऐसा करें:
g++ -o [name] [file to compile]
मान लें कि आप निष्पादन योग्य फ़ाइल का नाम "main" निर्दिष्ट करना चाहते हैं। आप निम्न टाइप करेंगे:
g++ -o main main.cpp
यदि आप ऑब्जेक्ट फ़ाइलों को एक साथ लिंक करना चाहते हैं, तो निम्न प्रारूप का उपयोग करके ऐसा करें:
g++ -o [compiled file] [obj1.o] [obj2.o]
यदि, उदाहरण के लिए, आप "object-1.o" और "object-2.o" ऑब्जेक्ट फ़ाइलों को "main" निष्पादन योग्य फ़ाइल में संकलित करना चाहते हैं, तो आप निम्न टाइप करेंगे:
g++ -o main object-1.o object-2.o
यदि आप एक रूट डायरेक्टरी निर्दिष्ट करना चाहते हैं, जहां लाइब्रेरी और हेडर पाए जा सकते हैं, तो --sysroot फ्लैग का उपयोग करें:
g++ -o [name] --sysroot [directory] main.ccp
"-Wall" का उपयोग करके चेतावनी संदेश दिखाना
कभी-कभी आपके कंपाइलर के लिए कोड संकलित करते समय सभी चेतावनी संदेश दिखाना उपयोगी होता है। सौभाग्य से, G++ में यह कार्यक्षमता अंतर्निहित है और उपयोग के लिए तैयार है।
सभी चेतावनी संदेश दिखाने के लिए, -Wall फ्लैग का उपयोग करें (कृपया ध्यान दें अपरकेस "W"):
g++ -o main main.cpp -Wall
स्टेटिक लाइब्रेरी बनाना
लाइब्रेरी बनाना सॉफ्टवेयर विकास का उतना ही बड़ा हिस्सा है जितना सही कोड एडिटर चुनना। ar कमांड जैसे कुछ ट्रिक्स के साथ, आप G++ का उपयोग करके आसानी से एक लाइब्रेरी संकलित कर सकते हैं।
एक ऑब्जेक्ट फ़ाइल संकलित करके शुरू करें:
g++ -o obj.o main.cpp
इसके बाद, एक संग्रह (".a") फ़ाइल बनाने के लिए "rcs" के साथ ar उपयोगिता का उपयोग करें:
ar rcs archive.a obj.o
अंत में, इसे G++ के साथ उपयोग करें:
g++ -o final example.cpp archive.a
अक्सर पूछे जाने वाले प्रश्न
1. क्या मैं इस टूल का उपयोग .c फ़ाइलों को संकलित करने के लिए कर सकता हूं?
तकनीकी रूप से, आप कर सकते हैं। हालांकि, gcc उपयोगिता इसके लिए अधिक उपयुक्त है क्योंकि G++ मुख्य रूप से एक C++ कंपाइलर है। इसके अतिरिक्त, G++ वैसे भी .c फ़ाइलों को C++ फ़ाइलों के रूप में व्यवहार करेगा।
यदि आप G++ का उपयोग करके .c फ़ाइलों को संकलित करना चाहते हैं, तो बस -c फ्लैग का उपयोग करें:
g++ -c [example.c] -o example
2. मुझे GCC का उपयोग C++ कंपाइलर के रूप में क्यों नहीं करना चाहिए?
आप GCC का उपयोग C++ कंपाइलर के रूप में बहुत अच्छी तरह से कर सकते हैं। हालांकि, G++ वास्तव में GCC का एक अनुकूलन है जो C++ पर अधिक केंद्रित है। इस प्रकार, यह C++ कोड के साथ काम करने वाले प्रोग्रामर के लिए कुछ अतिरिक्त कार्यक्षमता और सुविधाएं प्रदान करता है।
3. नवीनतम संस्करण क्या है?
Q1 2022 तक G++ का नवीनतम संस्करण 11.2.0 प्रतीत होता है। इसे जुलाई 2021 में जारी किया गया था।