如何用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::运算符<&书信电报;(ostream&;(*)(ostream&;)/var/tmp/ccPxLN2a.o
ostream::运算符<&书信电报;(int)/var/tmp/ccPxLN2a.o
ostream::运算符<&书信电报;(长)/var/tmp/ccPxLN2a.o
ostream::运算符<&书信电报;(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++在其链接步骤中
输入语言