用GCC编译C++程序

如何用GCC编译器编译C++程序?

信息中心:

#包括<iostream>
使用std::cout;
使用std::endl;
int main()
{
#ifdef_uucplusplus
cout<<“C++编译器正在使用,版本为”<<<\uuCPlusplus<<<endl;
#恩迪夫
cout<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
cout<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<行;
}

当我试图编译info.c

$gcc info.C

首次引用未定义
文件中的符号
cout/var/tmp/ccPxLN2a.o
endl(ostream&)/var/tmp/ccPxLN2a.o
ostream::运算符&lt&书信电报;(ostream&(*)(ostream&)/var/tmp/ccPxLN2a.o
ostream::运算符&lt&书信电报;(int)/var/tmp/ccPxLN2a.o
ostream::运算符&lt&书信电报;(长)/var/tmp/ccPxLN2a.o
ostream::运算符&lt&书信电报;(char const*)/var/tmp/ccPxLN2a.o
ld:致命:符号引用错误。没有写入a.out的输出
collect2:ld返回了1个退出状态

编译器不是能够编译C++程序吗?
另一方面,gcc和g++之间的区别是什么。
谢谢,

GCC实际上可以编译C++代码。您收到的错误是链接器错误,而不是编译器错误

如果将编译行更改为:

gcc info.C-lstdc++

这使得它与标准C++库链接,然后它工作得很好。

但是,您应该让您的生活更轻松,并使用g++


编辑:

Rup在对另一个答案的评论中说得最好:

[……]海湾合作委员会将
选择正确的后端编译器
基于文件扩展名(即将
将a.c编译为c,将a.cc编译为c++)
并将二进制文件链接到
标准C和GCC帮助程序库
默认值,不考虑输入语言;
g++还将选择正确的
基于扩展的后端,除了
我认为它编译了所有的C源代码
而不是C++(即编译两个
.c和.cc作为c++),它包括
libstdc++在其链接步骤中
输入语言

发表评论