Voici donc le programme le plus simple du monde :
#include <glib.h>
J'essaie de le compiler avec gcc test.c
et je reçois :
test.c:1:18: error: glib.h: No such file or directory
Je m'assure donc d'avoir les bons paquets :
# dpkg -l | grep libglib
ii libglib-perl 1:1.183-1 Perl interface to the GLib and GObject libra
ii libglib1.2-dev 1.2.10-19build1 The GLib library of C routines (development)
ii libglib1.2ldbl 1.2.10-19build1 The GLib library of C routines
ii libglib2.0-0 2.20.1-0ubuntu2 The GLib library of C routines
ii libglib2.0-cil 2.12.1-1ubuntu2 CLI binding for the GLib utility library 2.1
ii libglib2.0-data 2.18.2-0ubuntu2 Common files for GLib library
ii libglib2.0-dev 2.20.1-0ubuntu2 Development files for the GLib library
ii libglibmm-2.4-1c2a 2.18.1-1 C++ wrapper for the GLib toolkit (shared lib
Ensuite, je cherche un "glib.h" n'importe où dans /usr/include. J'en obtiens deux, /usr/include/glib-1.2/glib.h et /usr/include/glib-2.0/glib.h. Alors j'essaie :
$ gcc -I/usr/include/glib-2.0 -Wall test.c
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
from /usr/include/glib-2.0/glib.h:32,
from test.c:2:
/usr/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: No such file or directory
(environ 10 000 autres erreurs coupées)
Je ne semble pas avoir glibconfig.h
n'importe où sur mon ordinateur.
Que dois-je faire maintenant ?
1 votes
Peut-être que je suis juste idiot, mais pourquoi essayez-vous de compiler un en-tête ?
14 votes
J'ai commencé par un programme plus complexe, mais si "#include <glib.h>" ne fonctionne pas, rien ne fonctionnera.
0 votes
Si vous n'avez pas de fonction principale, elle sera no travail. Remplacer votre
glib.h
avecstdio.h
ne fonctionne pas non plus. En supposant que vous ayez une fonction principale, la bonne réponse est d'utiliserpkg-config
comme mentionné dans une autre réponse.2 votes
@YasushiShoji :
gcc -c test.c
devrait fonctionner parfaitement si test.c contient seulement#include <stdio.h>
. Il ne serait pas mal d'ajouter une deuxième lignevoid test(void) { }
mais ce n'est pas nécessaire. Dans le cas de l'OP, le message d'erreur apparaîtrait indépendamment de ce qui suit la balise#include <glib.h>
.