Pensez à ajuster la variable d'environnement PKG_CONFIG_PATH si vous avez installé le logiciel avec un préfixe non standard. Qu'est-ce que ça veut dire ?
pkg-config
MKJ
la source
la source
Réponses:
PKG_CONFIG_PATH
est une variable d'environnement qui spécifie des chemins supplémentaires dans lesquelspkg-config
rechercheront ses fichiers .pc.Cette variable est utilisée pour augmenter le chemin de recherche par défaut de pkg-config. Sur un système Unix typique, il effectuera une recherche dans les répertoires
/usr/lib/pkgconfig
et/usr/share/pkgconfig
. Cela couvrira généralement les modules installés par le système. Cependant, certains modules locaux peuvent être installés avec un préfixe différent, tel que/usr/local
. Dans ce cas, il est nécessaire d’ajouter le chemin de recherche afin que pkg-config puisse localiser les fichiers .pc.Le
pkg-config
programme est utilisé pour récupérer des informations sur les bibliothèques installées sur le système. La principale utilisation depkg-config
est de fournir les détails nécessaires à la compilation et à la liaison d'un programme à une bibliothèque. Ces métadonnées sont stockées dans des fichiers pkg-config. Ces fichiers ont le suffixe .pc et résident dans des emplacements spécifiques connus de l'outil pkg-config.Pour vérifier la
PKG_CONFIG_PATH
valeur, utilisez cette commande:Pour définir l'
PKG_CONFIG_PATH
utilisation de la valeur:ou
la source
La première réponse n'est pas assez explicite techniquement. Depuis la page de manuel (ouvrez un terminal, tapez
man pkg-config
):Donc, le
pkg-config
programme n'est pas dans lePKG_CONFIG_PATH
répertoire; Toutefois, si vous installez une bibliothèque, les informations à utiliser dans unautomake
script doivent être accessibles dans un répertoirepkg-config
.la source
/usr/local/lib/x86_64-linux-gnu
projetés comme un emplacement de recherche automatique gratuit (avec un videPKG_CONFIG_PATH
), et en effet, de nombreux.pc
fichiers - notamment GTK + et al. - y vivre. La raison en est d'activer simultanément la disponibilité multi-architecture d'un paquet, comme indiqué ci-dessous: askubuntu.com/questions/449348/…pkg-config
effectueront une recherche sur votre système: askubuntu.com/a/373217/436580Pour savoir où pkg-config (version 0.24 ou ultérieure) recherche les bibliothèques installées par défaut, utilisez la commande suivante:
Pour modifier ce chemin, définissez la
PKG_CONFIG_PATH
variable d'environnement. Le fichier man indiquePKG_CONFIG_PATH
:la source
echo $(pkg-config --variable pc_path pkg-config)${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH}
PKG_CONFIG_PATH
répertoire vide et toujours des répertoires de recherche par défaut. De plus, définir une valeur non vide ne supprime pas les valeurs par défaut.Vous essayez de construire un logiciel, disons Widget. Widget s'appuie sur une autre bibliothèque, libcog pour des raisons de discussion. Le processus de construction du widget (probablement un script de configuration) utilise pkg-config pour déterminer comment utiliser libcog. pkg-config ne sait rien de libcog.
Si libcog n'est pas installé, c'est votre problème. Il y a de fortes chances qu'une installation standard de libcog résolve le problème. Selon votre système, vous devrez peut-être installer une version "développeur" supplémentaire du paquet; il a souvent "-devel" ou "-dev" à la fin, donc si vous installez "libcog", vous devrez peut-être aussi installer "libcog-devel".
Si libcog est installé, pkg-config ne le trouvera probablement pas de manière à le trouver. Il existe probablement un fichier libcog.pc quelque part sur votre système. Par souci d'argumentation, voir /opt/cog/lib/pkgconfig/libcog.pc. Dans ce cas, vous pouvez en informer pkg-config en définissant PKG_CONFIG_PATH dans le répertoire contenant libcog.pc. Donc, dans un shell Bourne ou similaire, quelque chose comme
Une fois que cela est fait, ré-exécuter la commande qui a échoué fonctionnera, espérons-le.
Si libcog est installé, y compris les bibliothèques et les fichiers d'en-tête, et que vous ne disposez pas d'un fichier libcog.pc, les choses vont mal. Vraisemblablement, une installation standard de libcog inclut les informations, sinon Widget ne s'en servirait pas. Je voudrais d’abord enquêter sur la réinstallation de libcog. Il est possible de créer manuellement le fichier libcog.pc, mais il est difficile de le définir correctement et il est très spécifique à une bibliothèque donnée.
la source
J'ai consulté la page de manuel de mon système 64 bits et je me suis retrouvé un peu confus. Il a dit en une ligne:
J'avais supposé que cela avait toujours été fait dans les répertoires lib / pkgconfig. Il s'avère que les répertoires eux-mêmes. Dans mon cas, j’essayais de compiler le tutoriel hello world gtk. Je localise le fichier que je veux par exemple
Parmi les résultats sont:
Enfin était de faire une exportation.
la source
man
page est trop simpliste pour les systèmes modernes multi-architecturaux. J'ai été un peu dérouté car, sous Debian 8 x86,pkg-config
le dossier x86_64 est déjà (sans rien dansPKG_CONFIG_PATH
). Je ne suis pas sûr de savoir comment cela a été intégré, mais la ligne de commande pour sonder ceci montrée par @GrandAdmiral indique qu'il est contrôlé par le package--variable pc_path
qui est défini (en quelque sorte!) Pourpkg-config
.Il me semble que la plupart des réponses contiennent trop d'informations qu'il n'en faut.
Le logiciel que l’on installe peut (et fait généralement) s’appuyer sur certaines bibliothèques et / ou en-têtes et le système utilise pkg-config pour les trouver.
pkg-config
Cela dit, recherche ces fichiers dans des répertoires système prédéfinis (par défaut). Ces dossiers sont "préfixes". Par exemple, une bibliothèque avec un préfixe/usr/local
doit avoir des en-têtes/usr/local/include
et la bibliothèque elle-même sera dans/usr/local/lib
. Cependant, pkg-config recherche également les bibliothèques dans le répertoire répertorié dans la variable d'environnement PKG_CONFIG_PATH .Ensuite, si vous installez un logiciel en dehors de la liste de dossiers par défaut, vous devez "ajuster" la liste, à savoir ajouter vos répertoires dans PKG_CONFIG_PATH.
Pour plus d'informations, vous pouvez regarder ici et ici
la source
PKG_CONFIG_PATH
spécifie des répertoires supplémentaires dans lesquels rechercher uniquement des fichiersyourPkg.pc
(depkg-config
spécification). Cela n'affecte pas les éléments spécifiques à pkg, tels que les répertoires de recherche de bibliothèque.Cela signifie que vous essayez de construire quelque chose à partir des sources et qu'il ne trouve pas toutes les dépendances dont il a besoin. Le
pkg-config
script utilisé pour rechercher les fichiers de développement de ces bibliothèques génère ce message.la source
J'essayais d'installer la dernière version de axel et j'ai couru
./configure
et j'ai obtenu ceci:Alors j'ai essayé:
et j'ai eu:
Il est évident que j’avais openssl installed (
sudo apt-get install openssl
), mais sur la sortie ci-dessus, vous pouvez voir qu’il est indiqué "Aucun paquet" openssl "trouvé". Donc pour être sûr de l'avoir fait:Il s'avère que j'ai besoin d'un autre paquet à coup sûr, alors un peu de recherche sur Google et j'ai découvert que je devais installer ce paquet:
Et tout cela n’a rien à voir avec la modification de la variable env du chemin pkg-config.
la source
Ceux qui utilisent https://github.com/confluentinc/confluent-kafka-go
Veuillez suivre les instructions d'installation de librdkafka
Maintenant, vous pouvez utiliser go install / go run go build
la source