c++ tutorial त्रुटि संकलन: अनिर्धारित प्रतीकों: "_main", से संदर्भित: crt1.10.5.o में शुरू




the c++ programming language (2)

मेरे पास निम्न कोड है:

#include <iostream>

using namespace std;

class testing{
   int test() const;
   int test1(const testing& test2);
};

int testing::test() const{
   return 1;
}

int testing::test1(const testing& test2){
   test2.test();
   return 1;
}

संकलन के बाद, यह मुझे निम्नलिखित त्रुटि देता है:

Undefined symbols:
  "_main", referenced from:
      start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

यह मुख्य क्यों शिकायत कर रहा है? क्या मैं किसी अन्य फ़ाइल में मुख्य घोषित नहीं कर सकता और इसमें एक भी शामिल है?

आपका बहुत बहुत धन्यवाद!


यदि आप किसी अन्य फ़ाइल में मुख्य फ़ंक्शन को घोषित करते हैं, तो आपको दो फ़ाइलों को अलग से संकलित करना होगा, और फिर उन्हें 1 निष्पादन योग्य में लिंक करना होगा।

जब तक आप फ़ाइल की संपूर्ण सामग्री को मुख्य फ़ंक्शन के साथ शामिल नहीं करते हैं, यह भी काम करेगा, हालांकि थोड़ी अजीब है। लेकिन, यदि आप ऐसा करते हैं तो आपको यह सुनिश्चित करना होगा कि आप फ़ाइल को संकलित करें जिसमें मुख्य () फ़ंक्शन है


आपने इसे पहले ही लिंक करने का प्रयास किया है:

g++ file.cpp

यह केवल इसे संकलित नहीं करेगा, लेकिन पहले से ही निष्पादन योग्य बनाने का प्रयास करें। लिंकर तब मुख्य फ़ंक्शन को ढूंढने में असमर्थ है जिसे इसकी आवश्यकता है। ठीक है, इसे इस तरह करें:

g++ -c file.cpp
g++ -c hasmain.cpp

इससे दो फाइलें फ़ाइल बन जाएंगी.और हैमैन.ओ, दोनों ही अब तक संकलित हैं। अब आप उन्हें जी ++ के साथ जोड़ सकते हैं:

g++ -omy_program hasmain.o file.o

यह स्वचालित रूप से यह पता चलेगा कि वे पहले से ही संकलित फ़ाइलें हैं, और एक फ़ाइल "my_program" बनाने के लिए उस पर लिंकर को आमंत्रित करते हैं जो कि आपके निष्पादन योग्य है





c++