19
novembre
2012
Bien écrire un fichier .pc pour utiliser une bibliothèque
novembre
2012
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`