Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

GCC के साथ C++ प्रोग्राम संकलित करना

यहां हम देखेंगे कि जीसीसी (जीएनयू सी कंपाइलर) का उपयोग करके सी ++ प्रोग्राम को कैसे संकलित किया जाए। आइए विचार करें, हम इस कार्यक्रम को संकलित करना चाहते हैं।

उदाहरण

#include<iostream>
using namespace std;
main() {
   cout << "Hello World. This is C++ program" << endl;
}

यदि यह एक सी प्रोग्राम है, तो हम नीचे की तरह जीसीसी के साथ संकलित कर सकते हैं -

gcc test.c

लेकिन अगर हम उस क्षेत्र में c++ फ़ाइल नाम डालते हैं, तो यह कुछ त्रुटि उत्पन्न कर सकता है।

gcc test.cpp

आउटपुट

/tmp/ccf1KGDi.o: In function `main':
1325.test.cpp:(.text+0xe): undefined reference to `std::cout'
1325.test.cpp:(.text+0x13): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& 
std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
1325.test.cpp:(.text+0x1d): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, 
std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
1325.test.cpp:(.text+0x28): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
/tmp/ccf1KGDi.o: In function `__static_initialization_and_destruction_0(int, int)':
1325.test.cpp:(.text+0x58): undefined reference to `std::ios_base::Init::Init()'
1325.test.cpp:(.text+0x6d): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
$

यह संकलन त्रुटि नहीं है। यह लिंकिंग एरर है। सही लिंकर जोड़ने के लिए, हमें –lstdc++ विकल्प का उपयोग करना होगा।

gcc test.cpp -lstdc++

आउटपुट

$ ./a.out
Hello World. This is C++ program
$

  1. सी ++ प्रोग्राम एन चोटियों के साथ क्रमपरिवर्तन खोजने के लिए

    A[i+1], तो अनुक्रमणिका i को सरणी A का शिखर कहा जाता है। अगर यह संभव नहीं है, तो -1 लौटें। तो, अगर इनपुट n =5 की तरह है; k =2, तो आउटपुट [2, 4, 1, 5, 3] होगा, अन्य उत्तर भी संभव हैं। कदम इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - if k > (n - 1) / 2, then:    return -1 Define an a

  1. C++ प्रोग्राम त्रिज्या R . के साथ वृत्ताकार तालाब की परिधि ज्ञात करने के लिए

    मान लीजिए हमारे पास एक संख्या R है, जो एक तालाब की त्रिज्या का प्रतिनिधित्व करती है। हमें इस तालाब की परिधि का पता लगाना है। इसलिए, यदि इनपुट R =73 जैसा है, तो आउटपुट 458.67252742410977361942 होगा। कदम इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - res := r * 2 * cos-inverse (-1) return res आइए

  1. C++ प्रोग्राम कुछ शर्तों के साथ ग्राफ बनाने के लिए

    मान लीजिए कि हमारे पास दो नंबर एन और के हैं। विचार करें कि एन तत्वों के साथ एक अप्रत्यक्ष ग्राफ है। N शीर्ष निम्नलिखित शर्तों को पूरा करते हैं - ग्राफ़ सरल और जुड़ा हुआ है शीर्षों की संख्या 1 से N तक होती है मान लीजिए कि ग्राफ में किनारों की संख्या M है। किनारों को 1 से M तक क्रमांकित किया