c, c ++ проблема расширения файла - PullRequest
1 голос
/ 12 мая 2011

Я пишу программу на c ++ в Ubuntu (10.04) и сохраняю ее как файл .cc, когда я компилирую

, это с g ++ cat.cc, она работает нормально.Нет проблем, код работает нормально.

, но когда я компилирую его с помощью gcc, он выдает ошибку, которая выглядит следующим образом: /tmp/cc8aU82C.o :(. Eh_frame + 0x12): неопределенная ссылка на`__gxx_personality_v0 'collect2: ld вернул 1 состояние выхода

мой код следующий:

#include<stdio.h>
#include<stdlib.h>
struct man
{
    int a ;
    int b;
    void show(int x,int y);
}
};

int main()
{
    man m; 
    int c=50;
    int d;
    m.show(c,d);
    return 0;
}

void man::show(int x,int y)
{
    printf("%d",x);
}

Теперь кто-нибудь может сказать мне, что происходит неправильно, когда я компилирую его с помощью gcc?

В чем точная разница между расширениями .cpp и .cc, если они совпадают, чем то, почему мы их используем?почему они существуют?

Ответы [ 3 ]

4 голосов
/ 12 мая 2011

Если вы компилируете с помощью gcc, среда выполнения C ++ по умолчанию не связана, поэтому вы получите ошибки компоновщика, подобные той, которую вы видите. gcc и g ++ будут компилировать файлы с расширениями .cpp и .cc (и другими, которые я забыл) как C ++, и файлы с расширением .c как C. Но лучше быть явным и использовать g ++ для кода C ++ и GCC для C.

0 голосов
/ 12 мая 2011

Они существуют, потому что некоторые люди использовали их. : -)

Когда вы компилируете с g ++, вы говорите, что хотите скомпилировать код как C ++. Тогда расширение не имеет значения.

0 голосов
/ 12 мая 2011

gcc - компилятор C, а не компилятор C ++, g ++ - компилятор C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...