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

时间:2011-04-08 05:52:25

标签: c++

我的代码是

#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

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

g++ d.cpp -o d 

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

答案 2 :(得分:1)

该代码应该用c ++编译器编译好,但是你使用gcc编译它(一个c编译器)需要使用g ++