1

可能重复:
__gxx_personality_v0 是做什么用的?

我在编译 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
4

2 回答 2

10

使用其中一个g++- 因为您的文件带有后缀.cpp,或者将文件重命名为.c并保持命令行不变。在 Debian 6.0.5 和gcc4.4.5 上测试。

于 2012-05-29T15:06:44.463 回答
0

人 gcc 说:

C++ 源文件通常使用后缀 .C、.cc、.cpp、.CPP、.c++、.cp 或 .cxx 之一;C++ 头文件通常使用 .hh、.hpp、.H 或(对于共享模板代码).tcc;和预处理的 C++ 文件使用后缀 .ii。GCC 识别具有这些名称的文件并将它们编译为 C++ 程序,即使您调用编译器的方式与编译 C 程序的方式相同(通常使用名称 gcc)。

于 2012-05-29T15:05:25.277 回答