Forum Programmation.c compilation avec gcc 4.1.2

Posté par  .
Étiquettes : aucune
0
27
déc.
2006
Bonjour,

J'ai des fichiers c que je compile avec un gcc 2.95.2 sur mon serveur actuel, jusqu'à présent ça marche bien.
Mais une migration est prévue et la nouvelle version du gcc est la 4.1.2. Lorsque je tente de compiler mes fichiers, j'ai un tas d'erreurs du genre :
fiche.c:306: error: missing terminating " character
fiche.c:307: error: expected expression before '<' token
fiche.c:307: error: stray '\' in program

A ces lignes j'ai ça (l.306) :
fprintf(cgiOut,"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" >
%s %s %s",nomproduit,typeproduit,marqueproduit);

Je pense que ça vient du retour chariot en plein milieu du fprintf, apparemment la nouvelle version de gcc ne les prend pas en charge.

Y a-t-il un moyen pour lui faire accepter sans avoir à repasser sur mon code pour supprimer les retours chariot ?

Merci pour vos réponses

Niteowl
  • # Il vaut mieux corriger

    Posté par  (site web personnel) . Évalué à 5.

    C'était une extension de GCC, le préprocesseur remplaçant le retour chariot par \n. Les gens écrivaient donc du C non standard qui ne compilerait pas avec autre chose.
    Je me souviens qu'avec gcc 3 c'était déjà marqué deprecated, je pense que gcc4 n'en veut plus du tout.

    Sinon tu peux essayer cette option de cpp :
    -traditional-cpp
    Try to imitate the behavior of old-fashioned C preprocessors, as
    opposed to ISO C preprocessors.
    • [^] # Re: Il vaut mieux corriger

      Posté par  . Évalué à 1.

      Merci pour ta réponse. Ca n'a pas fonctionné, alors j'ai compilé avec l'ancienne version (gcc-2.95 etc)

      Mais tu as raison, il vaut mieux corriger le fichier pour le rendre compatible avec les nouvelles versions.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.