IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Code::Blocks Discussion :

Compiler un programme en C


Sujet :

Code::Blocks

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Compiler un programme en C
    Bonjour à tous !

    J'utilise pour la 1ère fois Code Blocks, et quand je compile mon programme en C il me retourne des erreurs de C++... Comment faire pour que ce soit un compilateur de C qui soit utilisé ?

    Merci d'avance.

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    quelle version de code::blocks utilises-tu? Sur quel OS (je demande ça car les versions sont un peu différentes selon les OS)?
    Sur la dernière (8.02), tu peux choisir, lorsque de la création d'un nouveau projet tu peux choisir s'il s'agit d'un projet en C ou en C++.
    Mais sinon, si ce sont des .c (et non .cpp), ils seront automatiquement compilé en C.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai la dernière version de Code Blocks, sur Windows.
    Mon programme a bien l'extension .c ; quand je le compile, il me retourne une erreur de C++, par exemple pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int* p = malloc(sizeof(int) * 5);
    il y a l'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: invalid conversion from `void*' to `int*'
    Je n'ai pas appris à mettre (int*) devant un malloc (plus généralement, le type du pointeur)... Alors, soit j'ai mal appris (bouh les profs) soit... c'est pas du C.. Soit... c'est du C mega strict.
    C'ets quoi la bonne réponse ?

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Ca fait bien bien longtemps que je n'ai pas programmé en C, mais d'après ce que je viens de lire sur le malloc, cette fonction renvoie bien un void*.
    Et d'après ce que j'ai lu, il faut faire un cast pour ce que tu veux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int* p = (int*) malloc(sizeof(int) * 5);
    J'aurais donc tendance à dire que c'est gcc qui est très exigeant, mais peut-être que je me trompe.

    Quoi qu'il en soit, tu auras de meilleurs réponses sur le sujet du malloc sur le forum C.

    En fait, qu'est-ce que qui te fais dire que ce sont des erreurs c++ que tu obtiens?
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour ta réponse.

    En tout cas, bizarre que ça ne me mette pas l'erreur sur les pc de ma fac (FreeBSD, avec GCC comme compilateur...), p'tet que c'est pas la même version que j'ai chez moi.

    Pourquoi je pensais que c'était compilé comme du C++ : quand j'ai demandé à afficher tous les warnings et erreurs possibles, ça m'a affiché des erreurs mentionnant le C++... Donc, ça m'a trifouillé les neurones. ^_^

    Mystère et boule de gomme.

    Ta réponse doit être la bonne (y'a juste une alien dans ma machine, c'est sûr :p). J'vais donc faire plus attention à écrire correctement mon code.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 217
    Points : 228
    Points
    228
    Par défaut
    Peut-être que tu avais des commentaires multi-lignes du style /* */ qui ne sont pas standards en C mais seulement en C++ et gcc te l'as indiqué (je crois que ça vient avec l'option -pedantic).

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Euh, perdu, ce sont les commentaires unilignes ( avec // ) qui sont interterdits en C89 et C90.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 217
    Points : 228
    Points
    228
    Par défaut
    Ah, ça confirme que j'ai pas de chance avec les jeux de hasard ...
    Heureusement que j'ai mis le peut-être

Discussions similaires

  1. [Outils][C#] Comment compiler un programme ?
    Par H-bil dans le forum EDI/Outils
    Réponses: 4
    Dernier message: 06/04/2007, 12h18
  2. Compiler un programme avec winapi.h
    Par mannostab dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2006, 22h06
  3. Compiler un programme perl pour palteforme Win32
    Par LE NEINDRE dans le forum Modules
    Réponses: 1
    Dernier message: 11/01/2006, 14h27
  4. [Compilation] Dev ne peut pas compiler mon programme
    Par Rémaill dans le forum Dev-C++
    Réponses: 9
    Dernier message: 01/11/2005, 00h41
  5. Delphi 2005 : Erreur de compilation du programme
    Par bigbestboy dans le forum Langage
    Réponses: 6
    Dernier message: 03/08/2005, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo