7 votes

Comment faire en sorte que pkg-config utilise PKG_CONFIG_PATH ?

J'ai écrit une petite bibliothèque et j'essaie de la configurer pour qu'elle soit utilisable avec pkg-config, pour ceux de mon organisation qui pourraient avoir besoin de l'utiliser plus tard. Mon installateur place donc un fichier .pc dans /usr/local/lib/pkgconfig, et j'ai récemment découvert que, pour une raison quelconque, ce répertoire n'est pas dans la liste par défaut des répertoires que pkg-config scanne pour ses fichiers pc, bien que /usr/local soit le préfixe canonique pour les logiciels compilés localement. J'ai donc besoin d'ajouter /usr/local/lib/pkgconfig à PKG_CONFIG_PATH.

Cependant, je constate que malgré les affirmations de la page de manuel, du message d'erreur de pkg-config et de tous les sites Internet, pkg-config ne regarde pas réellement PKG_CONFIG_PATH. Le message d'erreur me dit d'ajouter /usr/local/lib/pkgconfig (qui contient le fichier .pc que je cherche) à PKG_CONFIG_PATH, alors que je l'ai déjà fait.

[chris@delphinus-a pkgconfig]$ pwd
/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ ls
libexample.pc
[chris@delphinus-a pkgconfig]$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ echo $PKG_CONFIG_PATH
/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ pkg-config --cflags libexample
Package libexample was not found in the pkg-config search path.
Perhaps you should add the directory containing `libexample.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libexample', required by 'virtual:world', not found
[chris@delphinus-a pkgconfig]$ echo $PKG_CONFIG_PATH
/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ pkg-config --variable pc_path pkg-config
/usr/lib64/pkgconfig:/usr/share/pkgconfig
[chris@delphinus-a pkgconfig]$ pkg-config --version
1.6.3

Le contenu de libexample.pc :

prefix=/usr/local
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include

Name: libexample
Description: example library.

Libs: -L${libdir}  -lpthread -ltimeutil -lczmq -lzmq
Cflags: -I${includedir}

Donc, si PKG_CONFIG_PATH est bien la variable d'environnement que je dois définir, comment faire pour que pkg-config l'utilise réellement ? Ou bien, qu'est-ce que j'ai manqué d'autre ? Ceci est dans Fedora 31, FWIW.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X