我在编译C ++代码的过程中看到了这个问题。但是我要编译一个纯 C代码并继续收到此错误。我被禁止使用“-lstdc ++”作为解决此gcc问题的方法。如何更改我的代码以使其正常工作以及为什么会出现此错误?
我的简化代码:
//this is main.cpp
#include <stdio.h>
int main()
{
char ch[3];
ch[0] = getc(stdin);
ch[1] = getc(stdin);
ch[2] = '\0';
printf("%s\n", ch);
return 0;
}
我的编译命令是:
gcc main.cpp
答案 0 :(得分:10)
使用g++
- 因为您的文件后缀为.cpp
或将文件重命名为.c
并保持命令行不变。在Debian 6.0.5上使用gcc
4.4.5。
答案 1 :(得分:0)
C ++源文件通常使用后缀.C,.cc,.cpp,.CPP,.c ++,。c,之一, 或.cxx; C ++头文件通常使用.hh,.hpp,.H或(对于共享模板代码).tcc; 和预处理的C ++文件使用后缀.ii。 GCC识别具有这些名称的文件 即使你以相同的方式调用编译器,也将它们编译为C ++程序 编译C程序(通常使用名称gcc)。