erreur compilation

erreur compilation - C - Programmation

Marsh Posté le 16-09-2008 à 19:41:13    

Bonjour,
J'aimerais programmé en C sous LINUX mais je rencontre un problème (qui vous paraîtras peut être évident mais que je n'arrive pas à résoudre). J'écris donc mon programme à l'aide de gedit puis lorsque j'essaye de le compiler, le terminal m'affiche ceci: "erreur: stdio.h : Aucun fichier ou dossier de ce type". J'aimerais donc savoir si vous avez la solution? Car stdio.h est la bibliothèque de base donc je pense qu'elle est déjà installé dans mon compilateur (si oui comment le savoir?). Si vous pensez pouvoir m'aider sa sera volontiers, je précise aussi que je ne suis pas (encore) un pro de l'informatique donc il se peut que l'erreur soit banal.
Merci.

Reply

Marsh Posté le 16-09-2008 à 19:41:13   

Reply

Marsh Posté le 16-09-2008 à 21:52:01    

Tu essayes de le compiler en faisant quelle commande?
Tu passes par un Makefile?
Tu as un Include path bien configuré?
A+,


Message édité par gilou le 16-09-2008 à 21:53:15

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 17-09-2008 à 09:21:40    

Généralement, stdio.h se trouve dans le répertoire /usr/include (c'est d'ailleurs dans cet endroit que tu as la plupart des includes de bibliothèques).
 
Cet include est livré avec un package de ta distribution de linux (debian, mandriva, ubuntu ,etc...). Tu peux le trouver dans le package libc6-dev. Vérifie qu'il est bien installé (apt-get install libc6-dev sur ubuntu/debian, urpmi libc6-dev pour mandriva, je ne connais pas les autres). Par contre effectivement, c'est étonnant qu'il ne soit pas présent alors que ton compilateur l'est, d'autant plus que les distributions récentes gèrent les dépendances de packages et que gcc doit certainement être dépendant de "stdio".

Reply

Marsh Posté le 17-09-2008 à 10:18:18    

Une autre piste peut être (on ne sait jamais) tu as bien :

#include <stdio.h>


et non pas :

#include "stdio.h"

Reply

Marsh Posté le 17-09-2008 à 18:49:35    

Merci de ces réponses même si elle reste un peu incompris de ma part;
Pour Tarabiscote, oui j'ai bien mis <stdio.h>
Pour xilebo, oui moi j'ai aussi pensé que stdio.h doit être inclus avec le compilateur, je chercherais plus en détail plus deman (manque de temps se soir)
Pour gilou je n'ai pas tout compris (mot trop technique! lol) si sa peut t'aider voici mon algo en C, je prend un algo de base pour eviter une erreur de syntaxe:
#include <stdio.h>
int main(void)
{
 printf("hello!\n" );
 return 0;
}

Reply

Marsh Posté le 17-09-2008 à 18:52:44    

Lorsque je tape dans mon terminal ce que tu m'a indiqué xilebo voila ce qu'il me donne:
jeremy@jeremy-laptop:~$ apt-get install libc6-dev
E: Impossible d'ouvrir le fichier verrou /var/lib/dpkg/lock - open (13 Permission non accordée)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Reply

Marsh Posté le 17-09-2008 à 18:53:05    

sudo apt-get install libc6-dev

Reply

Marsh Posté le 17-09-2008 à 19:20:36    

Remarque vite fait: mieux vaut maitriser l'environnement ds lequel on apprend , sinon on est pas sorti de l'auberge ..  
 
Tu devrais essayer de compiler ton fichier en le nommant XXX.c , puis gcc XXX.c

Reply

Marsh Posté le 17-09-2008 à 19:33:28    

snakejb, tu n'as pas repondu a ma 1ere question:
Comment compiles tu ton programme?
Tu tapes une commande en ligne? tu utilises un environnement intégré avec un menu/bouton compile?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 18-09-2008 à 12:21:15    

J'utilise gedit pour taper mon programme et ensuite je le compile avec gcc, je ne compile pas avec gedit.

Reply

Marsh Posté le 18-09-2008 à 12:21:15   

Reply

Marsh Posté le 18-09-2008 à 12:27:43    

c'est bon j'ai résolu mon problème, j'ai entré :"sudo apt-get install libc6-dev" dans mon terminal puis après quelques validations, l'installation des bibliothèques s'est effectué automatiquement. Merci pour toutes vos réponses et merci a Joel F qui à résolu mon problème. Maintenant a moi la programmation...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed