我的代码是
#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
上述代码中的错误是什么?
答案 0 :(得分:3)
您应该使用g++
编译C ++程序,而不是gcc
。代码中没有错误,但是如果你使用带有这些参数的gcc,那么你的程序将不会与C ++标准库链接。
答案 1 :(得分:1)
g++ d.cpp -o d
应该使用g ++进行c ++程序编译以链接到C ++标准库。
答案 2 :(得分:1)
该代码应该用c ++编译器编译好,但是你使用gcc编译它(一个c编译器)需要使用g ++