在gcc中编译cpp程序时出现问题

Problem occurred while compiling a cpp program in gcc

本文关键字:问题 程序 cpp gcc 编译      更新时间:2023-10-16

我的代码是

#include<iostream>   
using namespace std;  
int main()  
{  
   cout <<"hi";  
   return 0;  
}

我用编译它

gcc d.cpp -o d  

错误如下

Undefined                       first referenced
 symbol                             in file
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator [](unsigned int) const/var/tmp//ccyDVhhA.o
std::cout                           /var/tmp//ccyDVhhA.o
std::ios_base::Init::~Init()        /var/tmp//ccyDVhhA.o
std::ios_base::Init::Init()         /var/tmp//ccyDVhhA.o
__gxx_personality_v0                /var/tmp//ccyDVhhA.o
std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_tr aits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)/va r/tmp//ccyDVhhA.o
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() c onst/var/tmp//ccyDVhhA.o
ld: fatal: Symbol referencing errors. No output written to d
collect2: ld returned 1 exit status

上面代码中的错误是什么?

您应该使用g++而不是gcc编译C++程序。代码中没有错误,但如果您将gcc与这些参数一起使用,那么您的程序将不会与C++标准库链接。

g++ d.cpp -o d 

应该使用g++进行c++程序编译以链接到c++标准库。

代码应该用c++编译器编译得很好,但使用gcc(c编译器(编译时需要使用g++