Où trouver les bibliothèque c/c++ sur Ubuntu?

Fermé
oèN - 8 oct. 2009 à 00:24
 loupius - 9 oct. 2009 à 01:06
Bonjour, je débute en C, et je compile avec gcc, mais je ne sais pas où il va chercher toutes les fonctions de stdio.h, stdlib.h ...

Merci pour votre aide.

1 réponse

Tout d'abord, un point de détail: 'stdio.h' n'est pas une fonction mais un fichier de déclaration.
D'une manière générale, sous Linux, tu trouveras 3 répertoires:
- /lib: contient les 'lib' nécessaires au système (pas touche!),
- /usr: contient 'usr/lib' et '/usr/include' pour les fichiers standards (c'est là que tu trouveras ton 'stdio.h'),
- /usr/local: contient 'usr/local/lib' et '/usr/local/include' pour les fichiers non standards (c'est là que tu trouveras les fichiers spécifiques à un logiciel et là aussi où que tu devras placer les tiens).
Bonne continuation.
3
Salut, et merci pour les infos.
Saurais tu où sont (s'ils existent!) les .c des fonctions ? par exemple strcpy que l'on utilise avec string.h.

Merci, à plus.
0
loupius > oèN
8 oct. 2009 à 13:29
La librairie 'libc' (appellée 'glibc' pour GNU library C) contient toutes les fonctions C répondant aux normes POSIX et ISO, plus quelques fonctions spécifiques à UNIX ou à GNU (par exemple les fonctions de base de données ('dbm_*'), ou de cryptage, ou de mathématiques (quelques hyperboliques et Bessel), ...).
Quant aux fichiers sources, il faut, pour les trouver, installer les sources du kernel et sans doute aboutiras-tu à de l'assembleur.
Bon courage.
0
oèN > loupius
8 oct. 2009 à 23:40
Wow, "Bon courage" est tout ce que j'ai compris là dedans lol.
Moi je fais juste #include ...
Donc en gros, j'ai aucune chance de trouver les .c correspondant aux fonctions sur mon disque dur ?
Je sais que sous windows, quand ils installent un éditeur/.../compilateur (genre code block), les .c sont dans le dossier d'installation.

En tout cas merci pour tes efforts !
0
loupius > oèN
9 oct. 2009 à 01:06
Je n'ai rien raconté de bien sorcier, mais je crois qu'il te manque quelques bases, et c'est normal lorsque l'on débute ;-)
Le 'C' est un langage qui est défini par des normes ce qui permet thèoriquement, si on respecte ces normes, la portabilité, c'est-à-dire qu'un programme écrit dans un certain environnement pourra aussi fonctionner, à condition de le recompiler, dans un autre environnement.
En gros, ces normes définissent les structures du langage, les types de variables et les fonctions de bases. Ce sont ces fonctions qui sont dans la 'glibc' (dans le cas de Linux); les fonctions ne sont pas utilisées sous forme de sources mais sont déjà compilées et réunies en un seul fichier que l'on appelle une bibliothèque (library in english). Ceci est plus rapide à gérer lors de la compilation (je ne rentre pas dans les détails, tu verras cela plus tard) afin de fabriquer ton exécutable; d'autre part il doit y avoir (prennons une louche ...) entre 500 et 1000 fonctions donc certainement plusieurs centaines de fichiers, et il est évidemment plus facile d'en avoir qu'un.
La bibliothèque ne contient donc que des fonctions déjà compilées, donc il n'est pas utile que les sources soient sur ton disque dur; toutefois il est possible de les étudier et c'est d'ailleurs une excellente idée; pour cela, je sais qu'en installant les sources du noyau Linux, on les a mais pour ce qui est de Windoze... je ne sais pas. Toutefois rien ne t'empêche; même sous Windoze, de récupérer les sources de Linux.
Bon continuation.
0