Débuts en C sous linux

Signaler
Messages postés
20
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
15 septembre 2006
-
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
-
Bonjour,
Je débute sous linux. J'étais plutôt habitué à Visual C++, mais je doit écrire une librairie en C sous Linux.
Pour démarrer je teste un bon vieux hello...
Mon fichier hello.c contient le code (pas surprenant):
#include <stdio>
int main() {
printf("Hello world\n");
return 0;
}

Pour compiler, dans le shell je tape la commande: gcc -o hello hello.c
J'obtiens : erreur: stdio.h : Aucun fichier ou répertoire de ce type
Je pensais qu'un compilateur comme gcc savait de lui même ou trouver les en-têtes standards... Que faire?


Merci pour le coup de main et bonne prog à tous.

8 réponses

Messages postés
246
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
11 mars 2012

C'est zarb en effet. Normalement je pensais que cette librairie était livrée avec gcc ?????

Vérifie dans ton /usr/include si t uas bien les librairies souhaitées !



Sinon, effectivement gcc connait de lui-même l'emplacement des biblio
standards, et ce message voudrait dire que tu ne possède pas la biblio,
je pense.



De même les librairies se trouvent normalement dans /usr/lib, mais je
ne connais pas le nom des librairies necessaires a stdio qui ne m'as
jamais posé de pb !

<hr size="2" width="100%"> Qui ne tente rien...

Ne risque pas d'avoir grand chose !!!

<hr siz="">
Messages postés
20
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
15 septembre 2006

J'ai pourtant bien un fichier stdio.h dans usr/lib/bcc/include.
Comment faire reconnaître cet emplacement à gcc s'il ne le connaît pas? C'est zarb en effet...
Messages postés
15
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
26 mars 2006

essaie

#include "[chemin complet]"

(entre "" au lieu de <>)
Messages postés
20
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
15 septembre 2006

Ca déconne toujours même avec le chemin complet, je sais plus trop quoi faire ... :-(
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

bonsoir,

Pour ma part, stdio.h est dans /usr/include.
si tu veux preciser a gcc ou se situe tes fichiers inclusions il faut que tu fasses un truc du genre
gcc -o hello -I/usr/lib/bcc/include hello.c

Matt...
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
11
regarde le code que tu as mis:



#include <stdio>
int main() {
printf("Hello world\n");
return 0;
}



je ne sais pas si tu as fais une erreur de copier/coller, mais ca serait plus ce code qu'il faut mettre:




#include <stdio.h>
int main() {
printf("Hello world\n");
return 0;
}


Bob...
"La chance accorde ses faveur aux esprits avertis..."
Messages postés
246
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
11 mars 2012

LordBob> En fait je crois que gcc reconnait automatiquement qu'il s'agit d'un ".h"
La preuve, dans son premier post, le compilateur lui dit bien "stdio.h introuvable"
De même j'ai déjà eu la surprise de lire des codes avec par exemple "#include" qui se compilaient sans problème.
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
11
oui pour iostream, je confirme. mais je viens de faire le test de son programme avec mon gcc, avec et sans le .h. dans le premier cas il compile, dans le second non!
Bob...
"La chance accorde ses faveur aux esprits avertis..."