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

C Discussion :

Les differences entre Borland et GCC


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Par défaut Les differences entre Borland et GCC
    Salut j'ai un probleme, j'utilisait le compilateur GCC avec code blocks , lorsque je resous un probleme et que ca compile et s'execute tres bien avec gcc quand je le soumet à borland il me renvoie 'erreur de compilation'.
    J'aimerai savoir pourquoi c'a ce passe comme ca et comment je peut faire pour etre en regle avec borland

  2. #2
    Invité
    Invité(e)
    Par défaut
    Difficile de répondre sans précisions supplémentaires. Code compilé, au moins en partie, code de l'erreur etc ...

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Potentiellement, tes deux compilateurs n'utilisent pas la même version de la norme C par défaut.

    gcc compile de mémoire en gnu99 (peut-être gnu11 dans les dernières versions).

    Si Borland compile par défaut en C89, ça peut faire du dégât...

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Par défaut
    Au fait, Borland me sort des erreurs que GCC ignore, il me semble que chaque compilateur a son paradigme a lui. Du coup on doit coder differemment, quand on est en face de Borland .
    J'amerai savoir comment ca doit ce faire, les differences entre borland et GCC sur le point de vue syntaxique, l'impotation des bibliothèques, les prototypes de fonction... et aussi comment coder de facon generale afin de pouvoir compiler son programme sans probleme avec tout les compilateurs etc...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ben si tu utilises le compilateur C++ de Borland c'est pas vraiment surprenant. Il faut peut-être préciser que c'est du code C que tu veux compiler. Mais encore une fois sans détails supplémentaires ...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tant que tu ne posteras pas le code et les erreurs, on ne pourra pas vraiment t'aider.
    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.

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    L'un des problèmes des compilateurs, c'est qu'ils ont le droit de faire des extensions au langage.
    Connaître ce que dit la norme, y faire attention, ça permet de ne pas se tromper.

    Je t'invite donc à lire un site de référence. J'utilise personnellement cppreference.com, qui propose le C et le C++

  8. #8
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par Bktero Voir le message
    gcc compile de mémoire en gnu99 (peut-être gnu11 dans les dernières versions).
    Pour être précis:
    gcc avant la version 5 : gnu89
    gcc 5 ou supérieures : gnu11

    https://gcc.gnu.org/gcc-5/porting_to.html

    Pour borland, je n'ai pas trouvé.

    @fredicalas : poste les erreurs de tes compilateurs (juste les erreurs, pas toute la compilation), avec idéalement un code minimal qui reproduit le problème si tu peux, et on pourra plus t'aider.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  9. #9
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il faut déjà comprendre le fait que le langage C (tout comme la plupart des langages) est un langage qui évolue. Cette évolution se traduit essentiellement par l'apparition de "nouvelles normes" destinées à indiquer la manière dont les compilateurs doivent fonctionner.

    De leur coté, les équipes qui développent les compilateur font (en principe) tout ce qu'elles peuvent pour respecter la "dernière norme en date", au besoin, en l'activant à l'aide d'une option spécifique (Gcc, par exemple, permet de choisir la norme utilisée au travers de l'option de compilation -std=<norme a utiliser>)

    Mais il n'y a bien sur pas de miracle : si un compilateur créé "aujourd'hui" (allez, on va dire dans les douze derniers mois ) peut "assez facilement" respecter toutes les normes les "plus anciennes", il n'y a véritablement aucune chance qu'un compilateur créé -- mettons -- en 1998 puisse supporter les normes les plus récentes, et ce, pour une raison finalement toute simple : la norme n'existait pas encore quand elle a été créée.

    Je sais par expérience qu'il est très facile de trouver une version récente de Gcc (on trouve sans aucun problème des "distributions" proposant des version 5.xx, 6.xx ou même 7.xx, y compris pour windows), mais je sais aussi par expérience qu'il n'est pas rare de tomber sur un compilateur de chez borland qui date encore ... du millénaire dernier.

    Si bien que je ne serais pas étonné outre mesure, si Gcc compile ton code sans problème et que borland refuse de le faire, que tu utilises -- tout simplement -- une version "trop ancienne" de borland, dans le sens où il ne supporterait pas la norme que tu as utilisée (ou que tu ne lui a pas indiqué correctement qu'il devait respecter la même norme que toi).

    Une autre possibilité est que tu as -- peut-être -- "un peu trop" eu recours à ces fonctions qui commencent classiquement par un double underscore et qui ressemblent à quelque chose comme __nom_de_fonction() car, les compilateur peuvent rajouter des fonctionnalités qui leur sont propres (du moment qu'ils proposent toutes les fonctionnalités imposées par la norme), et ces fonctionnalités qui commencent par un double underscore sont, typiquement, des fonctionnalités "internes" au compilateur (et qui peuvent donc varier d'un compilateur à l'autre, voire, pourquoi pas d'une version à l'autre du même compilateur).

    Enfin, je ne peux que plussoter tout ceux qui t'on fait la remarque : sans connaitre l'erreur à laquelle tu es confronté et sans disposer du code qui permet de la reproduire, il nous sera très difficile de te dire ce qui ne va pas
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Trouver les differences entre deux chaines
    Par xxxavvv dans le forum Langage
    Réponses: 4
    Dernier message: 28/05/2010, 23h42
  2. Recuperer les difference entre 2 list object
    Par topolino dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/01/2010, 15h07
  3. Les différences entre association et dépendance ?
    Par sephile dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 12/01/2005, 13h43
  4. Réponses: 1
    Dernier message: 10/12/2004, 10h50
  5. difference entre les edi
    Par Trust_ dans le forum Débats sur le développement - Le Best Of
    Réponses: 44
    Dernier message: 02/06/2004, 19h18

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