J'essaie de compiler l'exemple C simple de ce Tutorial sur Ubuntu en utilisant gcc. Que dois-je utiliser comme argument pour que gcc inclue les bibliothèques nécessaires pour #include <libappindicator/app-indicator.h>
?
Si vous avez utilisé apt-get
, Synaptic Package Manager
, etc. pour obtenir la bibliothèque appindicator
(par rapport à sa création à partir de la source), avez-vous uniquement installé la libappindicator1
package ou avez-vous aussi installé libappindicator-dev
pour obtenir les fichiers d'en-tête libappindicator
? Les packages Linux ont très souvent séparé les bibliothèques d'exécution des en-têtes de compilation. De cette façon, les personnes qui n'ont besoin que des bibliothèques pour satisfaire un lien dynamique n'ont pas à installer des en-têtes inutiles. Mais comme vous faites du développement, vous avez besoin de ces en-têtes et donc du libappindicator-dev
package également.
-I <searchpath to include files>
-L <searchpath to the lib file>
-l<thelibname>
Utilisez le -l
option de ligne de commande. Vous pouvez spécifier le chemin de recherche de la bibliothèque avec le -L
option. Par exemple:
gcc -o myprogram -lfoo -L/home/me/foo/lib myprogram.c
Cela liera myprogram
à la bibliothèque statique libfoo.a
dans le dossier /home/me/foo/lib
.
gcc example.c -o example `pkg-config --cflags --libs appindicator-0.1`
pkg-config récupérera les drapeaux include et lib requis pour libappindicator
et ses dépendances. Cela suppose libappindictaor-dev
le package est déjà installé.
Ce que je fais c'est:
pkg-config --list-all | grep indicator
Ce que vous essayez de faire ici est de créer une application gtk, les solutions ci-dessus sont applicables partout, comme l'utilisation de l'option -l et de l'option -I,
Cependant, pour les applications GTK, vous pouvez également utiliser pkg-config, ce qui facilite la tâche car vos chemins peuvent être prédéfinis
http://www.freedesktop.org/wiki/Software/pkg-config
Un exemple intéressant peut être trouvé ici http://developer.gnome.org/gtk/2.24/gtk-compiling.html