Problème lors d'une compilation en C

Résolu
NoX -  
NoXsmoke Messages postés 267 Statut Membre -
Bonjour,

J'ai écris un code source très simple (afficher "helloworld") mais lorsque je veux le compiler avec gcc, il me dit:

helloworld.c:11:114: error: expected identifier or `(' before `~' token

Ce que je ne comprend pas c'est que la "~" est d'origine sur toutes les lignes qui ne sont pas rempli. Il me demande de de rajouter une parenthèse ouverte à la fin?
D'avance, merci

9 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    Donne ton code source.
    --
    La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
    Char Snipeur
    0
    1. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      Dis comme ça on dirait du racket ;) Nan je plaisante.
      Mais les ""~" sur toutes les lignes" ça sent le
      vi
      /
      vim
      ...
      0
    2. NoX
       
      Effectivement c'est du vi
      0
  2. NoX
     
    Voici le code source:

    #include <stdio.h>

    int main()
    {
    printf("Hello, world!\n");
    return 0;

    }
    0
    1. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      Tout semble correct (excepté l'éventuel
      void
      manquant dans les paramètres de
      main
      ).
      Quelle est ta ligne de compilation avec
      gcc
      ?
      0
    2. NoX
       
      gcc helloworld.c
      0
    3. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      As-tu déjà compilé autre chose avec
      gcc
      ? C'est
      stdio.h
      qui semble avoir un problème; tout est installé comme il faut? (pas de problème de paquet corrompu ou autre?) Tente de désinstaller/réinstaller voire mettre à jour le paquet
      libc6-dev
      dans ton gestionnaire de paquet.
      0
    4. NoX
       
      Non en fait c'est mon tout premier programme
      J'esserais plus tard pour les paquets car je suis pas le su
      merci quand même
      0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    C'est peut être un caractère de fin de ligne ou invisible (ascii de 1 à 10) qui te cause des soucis.
    Ce programme est cours, retape le dans un nouveau fichier (pas de copier coller pouvant recopier le caractère défectueux) et compile.
    0
  4. NoX
     
    Je l'ai retapé, toujours le même problème
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Ce que je ne comprend pas c'est qu'il n'y a pas de ~ dans le code source...
    Pour test, supprime le printf et le include, et retourne une valeur de 123. En gros:
    int main(){return 123;}

    Donne nous le message d'erreur en entier.
    0
  7. NoX
     
    Il affiche la même réponse qui c'est décalée de ligne.
    Le coup de la ~, c'est ce qui est afficher sur toutes les autres lignes vierges en vi. Je pense qu'il veut dire à la fin
    0
  8. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Les "~" de vi sont en fait des caractères de remplissage, ils n'existent pas dans le fichier.
    Si tu veux, met plein de lignes vides dans ton fichier, les ~n'apparaiteront plus dans vi.
    Ba là, je ne comprends vraiment pas le problème.
    gcc -c helloworld ? gcc -fPIC -c helloworld ?
    0
  9. NoXsmoke Messages postés 267 Statut Membre 32
     
    Quand le code source a une erreur, je le rouvre avec un éditeur de texte (Kwrite) et les ~ sont là, c'est normal?
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      non. Supprime les et recompile.
      Si c'est ça, le problème vient possiblement de vi.
      0
  10. NoXsmoke Messages postés 267 Statut Membre 32
     
    tiens, un truc plus drôle, je me suis amusé à effacer toutes les lignes (donc les ~) à part le code source et quand je lui demande de compiler, il ne fait strictement rien:

    *****@linux-4kq5:~> gcc helloworld2.c
    *****@linux-4kq5:~> gcc helloworld2.c
    0
    1. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      Si, si, il compile bien: il ne s'est plaint de rien. Comme tu n'as pas précisé d'option
      -o [nom executable de sortie]
      , le programme compilé se nomme
      a.out
      et se lance avec
      ./a.out
      0
    2. NoXsmoke Messages postés 267 Statut Membre 32
       
      Ça y est!
      Premier programme exécuté, je suis juste obligé d'effacer les "~" avant de compiler mais ce n'est qu'un problème mineur.
      Encore merci à tout le monde!
      0