非常简单的程序在c ++中不起作用?

spa*_*ara 16 c++ cout

我无法弄清楚为什么这不起作用......

我在Linux工作

g ++什么都不做

gcc打印以下内容:

/tmp/ccyg7NDd.o: In function `main':
test.cc:(.text+0x14): undefined reference to `std::cout'
test.cc:(.text+0x19): 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*)'
test.cc:(.text+0x21): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
test.cc:(.text+0x29): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccyg7NDd.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cc:(.text+0x51): undefined reference to `std::ios_base::Init::Init()'
test.cc:(.text+0x56): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccyg7NDd.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

码:

#include<iostream>
#include<stdio.h>

int main(){

std::cout<<"test "<<std::endl;
return 0;

};
Run Code Online (Sandbox Code Playgroud)

hmj*_*mjd 18

gcc是C编译器,您需要使用g++(或使用其他人指出的gcc选项-lstdc++).如果在使用之后没有打印g++就是你的意思,你必须在构建之后执行编译后的二进制文件(即g++完成时).

main.cpp中:

#include<iostream>

int main(){

std::cout<<"test "<<std::endl;
return 0;

};
Run Code Online (Sandbox Code Playgroud)

建立:

g++ main.cpp -o main
Run Code Online (Sandbox Code Playgroud)

执行:

./main
Run Code Online (Sandbox Code Playgroud)

输出:

test 
Run Code Online (Sandbox Code Playgroud)


san*_*ank 5

这是 C++ 代码,因此您应该使用可执行文件g++而不是可执行文件gcc

另外,#include<stdio.h>, 也不需要。