क्या यह उदाहरण होगा:
#include <iostream>
using namespace std;
int main()
{
cout << "Hola, moondo.\n";
}
यह त्रुटि फेंकता है:
gcc -c main.cpp gcc -o edit main.o main.o: In function `main':
main.cpp:(.text+0xa): undefined reference to `std::cout'
main.cpp:(.text+0xf): 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*)'
main.o: In function `__static_initialization_and_destruction_0(int,int)':
main.cpp:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
main.cpp:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()' collect2: error: ld
returned 1 exit status make: *** [qs] Error 1
इसके अलावा, यह उदाहरण:
#include <iostream>
int main()
{
std::cout<<"Hola, moondo.\n";
}
त्रुटि फेंकता है:
gcc -c main.cpp gcc -o edit main.o main.o: In function `main':
main.cpp:(.text+0xa): undefined reference to `std::cout'
main.cpp:(.text+0xf): 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*)'
main.o: In function `__static_initialization_and_destruction_0(int,int)': main.cpp:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
main.cpp:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()' collect2: error: ld
returned 1 exit status make: *** [qs] Error 1
नोट: मैं डेबियन व्हीजी का उपयोग कर रहा हूं।
खैर, यह निश्चित रूप से समस्या हल हो गई। जैसा कि मैं समझता हूं, GCC Gnu कंपाइलर संग्रह के लिए संक्षिप्त नाम है। जरूरत पड़ने पर क्या इसे g ++ संकलक नहीं कहना चाहिए? इसलिए कमांड gcc के बजाय c संकलक को बुलाता है ...
—
D1X
@ D1X यह इसलिए है क्योंकि आपने संकलक से अलग से लिंकर को लागू किया है। जब आप लिखते हैं
—
MM
gcc -o edit main.o
तो यह नहीं पता होता main.o
है कि C ++ स्टार्टअप लाइब्रेरी की जरूरत है।
प्रश्न: क्या जरूरत पड़ने पर इसे जी ++ कंपाइलर नहीं कहना चाहिए? A: gcc से अधिक gfortran, gjc, ... आदि आदि को आवश्यकतानुसार नहीं बुलाना चाहिए।
—
पल्सम ४
g++
इसके बजाय प्रयास करेंgcc
।gcc
C के लिए है और आपको C ++ मानक लाइब्रेरी तक पहुंच प्रदान नहीं करेगा।