Précédent   Forum des professionnels en informatique > Systèmes > Linux > Distributions > Ubuntu
Ubuntu Vos questions sur les distributions Ubuntu et dérivées (Kubuntu, Xubuntu... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/04/2007, 18h11   #1
Invité de passage
 
Inscription : mars 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 9
Points : 1
Points : 1
Par défaut [KUBUNTU] Problème avec le compilateur GCC

Bonjour a tous les developpeurs,
je n'arrive pas a compiler un fichier basique en C...
lorsque je fais appel a gcc pour changer le .c en .o un message m'est envoyé en disant:
Citation:
stdio.h No such file or directory

Mon fichier .c est dans un de mes repertoires personnels... Dois je paramétrer certains fichiers pour pouvoir utiliser gcc dans n'importe quel répertoire?

merci d'avance...
Benjamin
benjamin1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 03h42   #2
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
Salut,

Ton message d'erreur indique que le compilateur n'a pas trouvé le header stdio.h, ce qui signifie probablement que les bibliothèques de développement n'ont pas été installées.

Installe le paquet libc6-dev et ça devrait être bon.

Et tant que j'y suis tu peux compiler directement tes sources en un binaire exécutable avec tout simplement
Ça donne un binaire nommé a.out.
L'option -o permet de spécifier un autre nom à cet exécutable et l'option -c arrête la compilation avec le linker (c'est à dire le fichier .o)
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 10h41   #3
Invité de passage
 
Inscription : mars 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 9
Points : 1
Points : 1
merci Haze tu viens de me sauver la vie;

il fallait juste installer les bibli mais par contre
il ne comprend toujours pas le
Citation:
system("pause");
Merci,;
Ben
benjamin1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 12h29   #4
Rédacteur
 
Avatar de Franck.H
 
Franck HECHT
Inscription : janvier 2004
Messages : 5 575
Détails du profil
Informations personnelles :
Nom : Franck HECHT
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 5 575
Points : 6 991
Points : 6 991
Envoyer un message via MSN à Franck.H
Citation:
Envoyé par benjamin1985
il ne comprend toujours pas le
Citation:
system("pause");
Normal ca n'existe pas sous Linux, c'est que sur Windows mais tu peux le simuler si tu y tiens vraiment:
Code :
1
2
printf ("Appuyez sur une touche pour continuer\n");
getchar ();
__________________
Mon Site
Groupe social des amateurs du langage C
Ma bibliothèque de gestion de chaînes de caractères : CStr


"L'imagination est plus importante que le savoir" A. Einstein
Franck.H est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 12h32   #5
Invité de passage
 
Inscription : mars 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 9
Points : 1
Points : 1
ok super,
mais alors il ne comprend pas toutes les fonctions system?
et pour effacer l'écran?
merci pour tout


Benjamin
benjamin1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 12h48   #6
Rédacteur
 
Avatar de Franck.H
 
Franck HECHT
Inscription : janvier 2004
Messages : 5 575
Détails du profil
Informations personnelles :
Nom : Franck HECHT
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 5 575
Points : 6 991
Points : 6 991
Envoyer un message via MSN à Franck.H
Les appels système changent suivant le système, pour effacer l'écran sous Linux, peut être
__________________
Mon Site
Groupe social des amateurs du langage C
Ma bibliothèque de gestion de chaînes de caractères : CStr


"L'imagination est plus importante que le savoir" A. Einstein
Franck.H est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 16h42   #7
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
De rien benjamin1985

D'une façon générale, les instructions system() sont à proscrire car elles nuisent à la portabilité du code source.
L'intérêt du system("pause") sous windows est d'empêcher la fermeture de la console sitôt les instructions du programme terminées.
Tandis que sous Linux, tu lances le programme depuis la console, elle est donc persistante et tu n'as pas besoin de ce genre d'instruction supplémentaire.

(De plus certains compilateus sous windows se chargent automatiquement d'insérer une instruction similaire à la compilation, comme avec code::blocks par exemple)
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 19h07   #8
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
Citation:
Envoyé par Haze.
Installe le paquet libc6-dev et ça devrait être bon.
J'utilise pour ma part le paquet build-essential.
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 20h16   #9
Rédacteur
 
Avatar de Franck.H
 
Franck HECHT
Inscription : janvier 2004
Messages : 5 575
Détails du profil
Informations personnelles :
Nom : Franck HECHT
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 5 575
Points : 6 991
Points : 6 991
Envoyer un message via MSN à Franck.H
Citation:
Envoyé par ggnore
J'utilise pour ma part le paquet build-essential.
+1

C'est plus simple
__________________
Mon Site
Groupe social des amateurs du langage C
Ma bibliothèque de gestion de chaînes de caractères : CStr


"L'imagination est plus importante que le savoir" A. Einstein
Franck.H est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 00h47   #10
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
Citation:
Envoyé par ggnore
J'utilise pour ma part le paquet build-essential.
Oui, c'est un meta-paquet bien pratique.
Cependant il est destiné, comme son nom l'indique, à installer tous les composants nécessaires à la création de paquets debian.
Je ne vois pas trop l'intérêt d'installer autant d'outils pour quelqu'un qui souhaite juste faire un peu de développement C...
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 10h01   #11
Rédacteur
 
Avatar de Franck.H
 
Franck HECHT
Inscription : janvier 2004
Messages : 5 575
Détails du profil
Informations personnelles :
Nom : Franck HECHT
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 5 575
Points : 6 991
Points : 6 991
Envoyer un message via MSN à Franck.H
Citation:
Envoyé par Haze.
Oui, c'est un meta-paquet bien pratique.
Cependant il est destiné, comme son nom l'indique, à installer tous les composants nécessaires à la création de paquets debian.
Je ne vois pas trop l'intérêt d'installer autant d'outils pour quelqu'un qui souhaite juste faire un peu de développement C...
Oula attention à ne pas confondre ...

Ce meta-paquet installe avant tout le nécessaire à la compilation avec GCC et G++ donc pour des programmes C et C++ tout en installant également des outils tels que make, les autotools, autoconf, la libc6-dev donc les headers et libs standard ANSI/ISO, etc...

C'est le minimum requis pour le développement en C/C++ sous Linux, que tu fasse peu ou beaucoup de programmation !
__________________
Mon Site
Groupe social des amateurs du langage C
Ma bibliothèque de gestion de chaînes de caractères : CStr


"L'imagination est plus importante que le savoir" A. Einstein
Franck.H est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 11h04   #12
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
Je suis d'accord avec toi sur le fait que les dépendances installent tous les outils dont a besoin un programmeur C/C++.

Cependant, je m'obstine à penser que :
- Ce n'est pas essentiel pour quelqu'un débutant en programmation C
- Ce n'est pas l'objectif premier du paquet... il y a aussi dpkg-dev comme dépendance. De plus voici la description fourni avec le deb :
Citation:
Envoyé par Description du paquet build-essential
Si vous n'envisagez pas de construire des paquets Debian, vous n'avez pas besoin de ce paquet. De plus, ce paquet n'est pas nécessaire pour construire des paquets Debian.

Ce paquet contient une liste informative des paquets qui sont considérés essentiels pour construire des paquets Debian. Ce paquet dépend aussi des paquets sur la liste, pour faciliter l'installation de ces principaux paquets de construction.

Si vous avez installé ce paquet, vous avez seulement besoin d'installer ce que vous demande un paquet comme dépendances de construction. Inversement, si vous avez déterminé ce dont votre paquet a besoin comme dépendances de construction, vous pouvez ignorer les paquets dont ce paquet dépend.

Ce paquet N'est PAS une définition des paquets essentiels à la construction ; la bonne définition est dans la Charte Debian. Ce paquet contient simplement une liste informative suffisante pour la plupart des personnes. Néanmoins, si ce paquet et la charte ne sont pas en accord, la charte a raison.
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 11h12   #13
Rédacteur
 
Avatar de Franck.H
 
Franck HECHT
Inscription : janvier 2004
Messages : 5 575
Détails du profil
Informations personnelles :
Nom : Franck HECHT
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 5 575
Points : 6 991
Points : 6 991
Envoyer un message via MSN à Franck.H
Oui je suis tout à fait d'accord mais qu'est-ce que cela peut faire si ca installe ces programmes de création de paquets en plus, tu n'es pas obligé de les utiliser et l'avantage c'est que ca t'installe ce dont tu as besoin pour programmer en C ANSI/ISO, l'essentiel c'est donc ca. Moi même je n'utilse pas tous les outils installés par ce biais !

C'est d'ailleurs plus court et plus rapide d'installer un seul meta paquet que de tout installer soi même en sélectionnant les paquets par exemple dans Synaptic, ce que je faisait au départ mais ca m'a vite gonflé au fil de mes réinstallations et je suis donc passé par le biais de ce meta paquet qui simplifie tout de même la vie, je pense que c'est avant tout ce point là qu'il est bon de retenir non ?

Après bon chacun passe par le chemin qu'il veux
__________________
Mon Site
Groupe social des amateurs du langage C
Ma bibliothèque de gestion de chaînes de caractères : CStr


"L'imagination est plus importante que le savoir" A. Einstein
Franck.H est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 12h01   #14
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
Citation:
Envoyé par Franck.H
C'est d'ailleurs plus court et plus rapide d'installer un seul meta paquet que de tout installer soi même en sélectionnant les paquets par exemple dans Synaptic, ce que je faisait au départ mais ca m'a vite gonflé au fil de mes réinstallations et je suis donc passé par le biais de ce meta paquet qui simplifie tout de même la vie, je pense que c'est avant tout ce point là qu'il est bon de retenir non ?
Parfaitement, on est tous d'accord finalement

Désolé si j'ai pris tes messages un peu trop au pied de la lettre, mais comme benjamin1985 n'avait besoin que d'un seul paquet, ça m'a parut plus logique de lui conseiller la libc6-dev au lieu de build-essential.
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 10h18   #15
Rédacteur/Modérateur
 
Avatar de fearyourself
 
Homme
Ingénieur Informaticien Senior
Inscription : décembre 2005
Messages : 4 994
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur Informaticien Senior
Secteur : Industrie

Informations forums :
Inscription : décembre 2005
Messages : 4 994
Points : 8 297
Points : 8 297
Citation:
Envoyé par Haze.
Parfaitement, on est tous d'accord finalement

Désolé si j'ai pris tes messages un peu trop au pied de la lettre, mais comme benjamin1985 n'avait besoin que d'un seul paquet, ça m'a parut plus logique de lui conseiller la libc6-dev au lieu de build-essential.
Certes, mais une fois que tu vas commencer à programmer sérieusement, tu vas vouloir faire un makefile et du coup tu vas bien devoir installer les autres paquets qui sont contenus dans build-essential

Jc
fearyourself est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h53.


 
 
 
 
Partenaires

Hébergement Web