19
novembre
2012
Bien écrire un fichier .pc pour utiliser une bibliothèque
novembre
2012
Un article de Rachel
Pas de commentaires
Quand on compile un programme en Vala, il faut souvent écrire cette chaîne :
valac --pkg nom_lib main.vala -X -lnom_lib
mais il peut s’afficher le message suivant :
media.vapi:15.13-15.15: error: The symbol `Gee` could not be found
protected Gee.ArrayList qualities;
protected Gee.ArrayList qualities;
Cela signifie que les dépendances nécessaires à la compilation ne sont pas présentes. Il faudrait écrire alors :
valac --pkg nom_lib --pkg autre_lib --pkg encore_autre_lib main.vala -X -lnom_lib
si la bibliothèque dépend de beaucoup d’autres, ça devient long à l’écriture.
Pour remédier à cela, il faut rédiger un fichier .pc pour pkg-config. Voici un modèle :
prefix=/usr/local
exec_prefix=${prefix}
libdir={$prefix}/lib
includedir={$prefix}/include
Name: Media
Description: library for media programming
Require: gee-1.0 json-glib-1.0 libsoup-2.4
Libs: -L{$libdir} -lmedia
Cflags: -I{$includedir}
exec_prefix=${prefix}
libdir={$prefix}/lib
includedir={$prefix}/include
Name: Media
Description: library for media programming
Require: gee-1.0 json-glib-1.0 libsoup-2.4
Libs: -L{$libdir} -lmedia
Cflags: -I{$includedir}
la ligne Libs nous évitera d’écrire ‘-X -lmedia’ dans la commande. La ligne Require est la principale, elle recense toutes les dépendances nécessaires. Le fichier est à placer dans /usr/lib/pkgconfig .
Après ceci, il suffit seulement d’écrire :
valac --pkg nom_lib main.vala
Comme on ferait pour un programme c :
gcc main.c `pkg-config --cflags --libs nom_lib`