Rechercher : dans
Par :

Compiler un fichier C sous linux

Dernière réponse le 17 nov 2007 à 11:11:58 breehen, le 18 déc 2006 à 21:37:07 
 Signaler ce message aux modérateurs

Bonjour,
j'arrive pas à compiler un fichier C sous ubuntu, pourtant c'est un programme de base (hello word),

voila le fichier C
#include <stdio.h>
main()
/* Notre premier programme en C */
{
printf("hello, world\n");
return 0;
}

voila le message affiché par le compilateur:(mon fichier C s'appelle annuaire.c)

annuaire.c:1:19: erreur: stdio.h : Aucun fichier ou répertoire de ce type
annuaire.c: Dans la fonction «main» :
annuaire.c:5: attention : incompatible implicit declaration of built-in function «printf»

Configuration: Linux
Firefox 1.5.0.8

Meilleures réponses pour « compiler un fichier C sous linux » dans :
Compiler du C sous Linux/UNIX Voir Sous Linux, le compilateur de C est gcc. Il est installé de base sur plusieurs distributions, mais sur Debian (et celles qui en découlent) il faudra l'installer (aptitude install gcc). gcc Syntaxe de GCC gcc Tout d'abord, il faut savoir...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Interfacer du code assembleur et du C VoirInterfacer du code assembleur et du C Introduction Appeler du code assembleur écrit dans un fichier source externe Avec Nasm (x86 uniquement) Compilation/Exécution sous Linux Avec Gcc (multiplateforme) Introduction Si, à tout hasard,...
L'arborescence du système de fichiers de Linux VoirLinux possède de nombreux répertoires, et ils ont chacun leur rôle. (Note: D'une distribution à l'autre, ces répertoires peuvent être différents.) Sous Windows, un fichier est un fichier. Sous Linux, un fichier peut représenter: un fichier, un...
Linux - L'arborescence des fichiers VoirLa hiérarchie des fichiers sous Linux Pour assurer la compatibilité et la portabilité, les systèmes Linux respectent l'unique norme FHS (File Hierarchy Standard). La hiérarchie de base est la suivante : /la racine, elle contient les...

2

mamiemando, le 19 déc 2006 à 01:54:47

Alors d'abord une petite correction

#include <stdio.h>

/* Notre premier programme en C */
int main(){
  printf("hello, world\n");
  return 0;
} 

Ensuite il faut t'assurer que tu as installer les paquets de développements pour le c, à savoir une libc-dev et un gcc. Ensuite :
gcc -W -Wall -o monexecutable monfichier.c

Manifestement tu n'as pas de fichier stdio.h ce qui laisse supposé que tu n'as pas installé de libc.

Bonne chance

Répondre à mamiemando

3

Char Snipeur, le 19 déc 2006 à 08:37:28

Salut.
En effet, le compilateur ne trouve pas le fichier d'en tête que tu inclu : stdio.h
étant donné que c'est vraiment le fichier de base, je pense qu'il doit être quelque part.
Donc, pour résoudre ton problème, recherche ce fichier.
Une foi que tu as trouver où il est, tu rajoute le chemin au compilateur par l'option -I :exe:
gcc -o monexecutable monfichier.c -I/usr/include
si stdio.h est dans un /usr/include, ou un répertoire stadard de ce genre, il est possible que le compilateur soit mal configurer. Salutation !
Char Snipeur

Répondre à Char Snipeur

4

mamiemando, le 19 déc 2006 à 10:20:19

Ah j'ai peut être une idée. Peux tu faire en root un :

updatedb
locate stdio.h

Donne nous le résultat, puis dans une console utilisateur tape :
echo $LD_LIBRARY_PATH

et donne nous également le résultat.

Bonne chance

Répondre à mamiemando

5

breehen, le 19 déc 2006 à 15:24:33

Bon pour la première commande :
updatedb
locate stdio.h
le resultat est le suivant :
/usr/lib/perl/5.8.7/CORE/nstdio.h

donc d'après ce que j'ai compris , j'ai pas le stdio.h chez moi,
la deuxième commande ne donne rien !!

Répondre à breehen

6

Char Snipeur, le 19 déc 2006 à 15:50:00

Tu as quoi comme distrib de Linux?
le mieux, c'est d'aller dans l'installateur de package, et de lui demander de mettre les bib C. Salutation !
Char Snipeur

Répondre à Char Snipeur

7

breehen, le 19 déc 2006 à 15:54:26

Je suis sous ubuntu
comment je pourrais le faire sous ubuntu ?
Merci

Répondre à breehen

8

Char Snipeur, le 19 déc 2006 à 16:02:49

Salut.
Je ne connait pas ubuntu comme distrib (d'ailleur, il vaut mieux le préciser à chaque fois que tu fait un message, en plus de Linux) mais tu peux faire des recherches sur le forum ou sur google sur "comment installer un nouveau package?"
j'en sais pas plus desoler. Salutation !
Char Snipeur

Répondre à Char Snipeur

9

mamiemando, le 20 déc 2006 à 15:29:52

Il faut installer les paquets de developpement gcc (genre gcc-dev libc-dev, ou nom approchant).

Bonne chance

Répondre à mamiemando

11

dugang, le 16 nov 2007 à 20:15:51

Bonjour,
tu peut ouvrir ton gestionnaire de paquets sunaptic, dans la fenetre de paquet, tu choisis libc-dev, apres tu installe

Répondre à dugang

mype, le 17 nov 2007 à 04:29:50
  • +3

Je pense qu'en un an il a du le trouvé...

Répondre à mype

12

 mamiemando, le 17 nov 2007 à 11:11:58

:-)))))))))))))))

Répondre à mamiemando