2012-05-29 3 views
1

Duplicate possible:
What is __gxx_personality_v0 for?référence non définie à `__gxx_personality_v0' avec gcc

Je l'ai vu cette question circuler ici dans le cadre de la compilation du code C++. Cependant, je dois compiler un pur code C et continuer à obtenir cette erreur. Je suis interdit d'utiliser "-lstdC++" comme solution de contournement à ce problème gcc. Comment changer mon code pour le faire fonctionner et pourquoi cette erreur apparaît-elle?

Mon code simplifié:

//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; 
} 

Ma commande de compilation est:

gcc main.cpp 
+0

Veuillez coller votre ligne de commande du compilateur/éditeur de liens? – razlebe

+0

@ugoren plese lu avec attention. Ce n'est pas un doublon. Je concerne le code C et non le C++ comme je l'ai dit plus haut. De plus je demande comment réécrire le code pour se débarrasser de l'erreur et non pas quelles options de compilation ajouter! –

+1

@anonymous_infoholic: veuillez répondre à la question de maverik alors. Vous l'appelez toujours '.cpp', ce qui risque de jeter des outils au backend. – 0xC0000022L

Répondre

10

Utilisez soit g++ - depuis votre fichier est suffixé .cpp ou renommer le fichier à .c et garder la ligne de commande est. Testé sur Debian 6.0.5 avec gcc 4.4.5.

0

dit gcc homme:

fichiers source C++ utilisent traditionnellement l'un des suffixes .c,. cc, .cpp, .CPP, .C++, .cp, ou .cxx; Les fichiers d'en-tête C++ utilisent souvent .hh, .hpp, .H ou (pour le code de modèle partagé) .tcc; et les fichiers C++ pré-traités utilisent le suffixe .ii. GCC reconnaît les fichiers avec ces noms et les compile en tant que programmes C++ même si vous appelez le compilateur de la même manière que pour compiler des programmes C (généralement avec le nom gcc).

Questions connexes