Problème lors d'une compilation en C

Résolu/Fermé
NoX - Modifié par NoX le 11/12/2013 à 14:58
NoXsmoke Messages postés 250 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 4 février 2024 - 14 déc. 2013 à 12:48
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

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 déc. 2013 à 15:10
Salut.
Donne ton code source.
--
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
11 déc. 2013 à 15:14
Dis comme ça on dirait du racket ;) Nan je plaisante.
Mais les ""~" sur toutes les lignes" ça sent le
vi
/
vim
...
0
Effectivement c'est du vi
0
Voici le code source:

#include <stdio.h>

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

}
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
11 déc. 2013 à 15:19
Tout semble correct (excepté l'éventuel
void
manquant dans les paramètres de
main
).
Quelle est ta ligne de compilation avec
gcc
?
0
gcc helloworld.c
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
11 déc. 2013 à 15:24
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 déc. 2013 à 15:48
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
Je l'ai retapé, toujours le même problème
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 déc. 2013 à 16:04
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 déc. 2013 à 16:25
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
NoXsmoke Messages postés 250 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 4 février 2024 31
11 déc. 2013 à 16:31
Quand le code source a une erreur, je le rouvre avec un éditeur de texte (Kwrite) et les ~ sont là, c'est normal?
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 déc. 2013 à 16:36
non. Supprime les et recompile.
Si c'est ça, le problème vient possiblement de vi.
0
NoXsmoke Messages postés 250 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 4 février 2024 31
Modifié par NoXsmoke le 11/12/2013 à 16:38
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
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
11 déc. 2013 à 17:59
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
NoXsmoke Messages postés 250 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 4 février 2024 31
14 déc. 2013 à 12:48
Ç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