मैं लिनक्स के लिए नया हूँ। मैं Ubuntu 11.04 का उपयोग कर रहा हूं और यह नहीं जानता कि इसमें C ++ प्रोग्राम को कैसे संकलित और निष्पादित करना है। मुझे लिनक्स में C ++ प्रोग्राम को संकलित और निष्पादित करने के लिए कमांड जानने की आवश्यकता है ।
मैं लिनक्स के लिए नया हूँ। मैं Ubuntu 11.04 का उपयोग कर रहा हूं और यह नहीं जानता कि इसमें C ++ प्रोग्राम को कैसे संकलित और निष्पादित करना है। मुझे लिनक्स में C ++ प्रोग्राम को संकलित और निष्पादित करने के लिए कमांड जानने की आवश्यकता है ।
जवाबों:
अपने c ++ कोड को संकलित करने के लिए, उपयोग करें:
g++ foo.cpp
foo.cpp उदाहरण में संकलित किए जाने वाले प्रोग्राम का नाम है।
यह उसी निर्देशिका में एक निष्पादन योग्य उत्पादन करेगा a.out
जिसे आप अपने टर्मिनल में टाइप करके चला सकते हैं:
./a.out
g ++ पहले से ही आपके $ PATH में होना चाहिए, इसलिए आपको /usr/bin/g++
स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है , लेकिन आप किसी भी स्थिति में बाद का उपयोग कर सकते हैं।
foo.cpp
उसी निर्देशिका में होना चाहिए जिससे आप कमांड चला रहे हैं। यदि कोई संदेह है, तो आप यह सुनिश्चित कर सकते हैं कि आप उसी निर्देशिका में टाइप कर रहे हैं ls foo.cpp
या head foo.cpp
(यदि आपको सत्यापित करने की आवश्यकता है कि आप सही काम कर रहे हैं foo
)।
जैसा कि @ con-f-use द्वारा उल्लेख किया गया है, कंपाइलर आमतौर पर इस फाइल को निष्पादन योग्य बना देगा, लेकिन यदि नहीं, तो आप इसे स्वयं कर सकते हैं (इसलिए निष्पादित करने के लिए कमांड, ./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
आपके डेस्कटॉप पर स्थित C ++ स्रोत फ़ाइल संकलित करेगा और निष्पादन योग्य बाइनरी 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.
आपको g ++ की आवश्यकता है, क्योंकि gcc आसानी से cpp फ़ाइल को संकलित नहीं कर सकता है।
C कोड लिखने के लिए आपको vim या emacs भी सीखना होगा।
बस अपने टर्मिनल पर यह कोशिश करें:
एक परीक्षण कार्यक्रम टाइप करें और इसे सहेजें:
$vim hello.cc
hello.cc
जी ++ के साथ संकलन :
$g++ hello.cc -o hello
इसे निष्पादित करो:
$./hello
यहां ./
मौजूदा डीआईआर के तहत एक्सई फाइल का मतलब है।
vi
, लेकिन इससे कोई फर्क नहीं पड़ता। आपको एक विशिष्ट संपादक का सुझाव देने से बचना चाहिए, हर कोई वैसे भी उसका उपयोग करता है।
g++
gcc
कुछ पूर्वनिर्धारित c ++ मैक्रो और विभिन्न डिफ़ॉल्ट विकल्पों / झंडों के साथ (GNU कम्पाइलर कलेक्शन) फ्रंट-एंड है ।
किसी भी संख्या में कारणों से उपलब्ध नहीं gcc
होने पर c ++ कोड को संकलित करना आसान g++
है, वास्तव में यह c ++ लाइब्रेरी से जोड़ने -lstdc++
और इनपुट को c ++ कोड के रूप में व्यवहार करने के लिए सूचित करने का मामला है (या तो एक .C
एक्सटेंशन का उपयोग करके , या भाषा को मजबूर करने के लिए) -x
)
अन्य वैध c ++ फ़ाइल नाम प्रत्यय: .cc
, .cp
, .cxx
, .cpp
, .CPP
,.c++
उदाहरण :
gcc cpp_code.C -lstdc++
अपरकेस विस्तार ( .C
) gcc के लिए यह जानना महत्वपूर्ण है कि यह c ++ फ़ाइल है।
या इनपुट भाषा को स्पष्ट रूप से निर्दिष्ट करना:
gcc -x c++ cpp_code.txt -lstdc++
विस्तार कुछ भी हो सकता है, या कुछ भी नहीं
डिफ़ॉल्ट रूप से परिणाम (एक सफल संकलन के बाद) एक a.out
फ़ाइल है जिसे साथ चलाया जा सकता है./a.out