Вопрос по gcc, c – неопределенная ссылка на `__gxx_personality_v0 'с gcc [duplicate]

1

Possible Duplicate:
What is __gxx_personality_v0 for?

Я видел, как этот вопрос циркулировал здесь в контексте компиляции кода C ++. Однако я должен составитьpure С кодом и продолжаю получать эту ошибку. Мне запрещено использовать & quot; -lstdc ++ & quot; в качестве обходного пути к этой проблеме 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
Пожалуйста, вставьте ваш компилятор / компоновщик командной строки? razlebe
@maverik: По-видимому, спрашивающий не сможет ответить на ваш комментарий. Дайте ему справочную информацию. Sebastian Mach
@STATUS_ACCESS_DENIED О, я сделал тайфу, потому что я часто переключаюсь между языками. Я исправил это, и это действительно решило проблему, большое спасибо за замечание и объяснение! Я думал, что Maverick просто делает едкое замечание .. infoholic_anonymous
@ugoren прошу читать внимательно. Это не дубликат. Я имею в виду код на C, а не на C ++, как я уже говорил выше. Кроме того, я спрашиваю, как переписать код, чтобы избавиться от ошибки, а не какие опции компиляции добавить! infoholic_anonymous
@anonymous_infoholic: ответьте, пожалуйста, на вопрос Maverik. Вы все еще называете это.cpp который может скинуть некоторые инструменты в бэкэнде. 0xC0000022L

Ваш Ответ

2   ответа
10

Используйте либоg++ - поскольку ваш файл имеет суффикс.cpp или переименуйте файл в.c и сохраните командную строку как есть. Протестировано на Debian 6.0.5 сgcc 4.4.5.

0

man gcc говорит:

C++ source files conventionally use one of the suffixes .C, .cc, .cpp, .CPP, .c++, .cp, or .cxx; C++ header files often use .hh, .hpp, .H, or (for shared template code) .tcc; and preprocessed C++ files use the suffix .ii. GCC recognizes files with these names and compiles them as C++ programs even if you call the compiler the same way as for compiling C programs (usually with the name gcc).

Похожие вопросы