1

重複の可能性:
__gxx_personality_v0は何のためにありますか?

私は、C ++コードのコンパイルのコンテキストで、この質問がこの辺りで広まっているのを見てきました。ただし、純粋なCコードをコンパイルして、このエラーが発生し続けることになっています。このgcc問題の回避策として「-lstdc++」を使用することは禁じられています。コードを変更して機能させる方法と、このエラーが発生するのはなぜですか?

私の簡略化されたコード:

//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て、コマンドラインをそのままにします。Debian6.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プログラムのコンパイルと同じ方法(通常はgccという名前)でコンパイラーを呼び出した場合でも、C++プログラムとしてコンパイルします。

于 2012-05-29T15:05:25.277 に答える