Il s'agit de la commande ppkg-configp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
PkgConfig - Remplacement Pure-Perl Core-Only pour pkg-config
SYNOPSIS
As a remplacement pour "pkg-config"
$ ppkg-config --libs --cflags --static gio-2.0
#sorties (lignes interrompues artificiellement pour plus de lisibilité) :
# -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
# -pthread -lgio-2.0 -lz -lresolv -lgobject-2.0
# -lgmodule-2.0 -ldl -lgthread-2.0 -pthread -lrt -lglib-2.0
"pkg-config.pl" peut être utilisé comme alias pour "ppkg-config" sur les plateformes qui le prennent en charge.
Il peut également être installé en tant que "pkg-config" bien que cela ne soit pas recommandé si votre système a
un "pkg-config" natif.
Comparer aux:
$ pkg-config --libs --cflags --static gio-2.0
#les sorties ( "" ):
# -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
# -pthread -lgio-2.0 -lz -lresolv -lgobject-2.0 -lgmodule-2.0
# -ldl -lgthread-2.0 -lrt -lglib-2.0
À partir de une Perl module
utiliser PkgConfig ;
mon $o = PkgConfig->find('gio');
if($o->errmsg) {
#gérer l'erreur
} Else {
mon $prefix = $o->get_var('prefix');
mon @cflags = $o->get_cflags ;
mon @ldflags = $o->get_ldflags ;
}
DESCRIPTION
"PkgConfig" fournit un remplacement pur-perl, uniquement de base pour l'utilitaire "pkg-config".
Ceci n'est pas une description des utilisations de "pkg-config" mais plutôt une description du
différences entre la version C et la version Perl.
Alors que "pkg-config" est un binaire compilé lié à la glib, la version pure-perl n'a pas
une telle exigence, et s'exécutera partout où Perl ( >= 5.6 ) le fait.
Les principales options prises en charge sont les "--libs", "--cflags", "--static", "--exists" et
"--modversion".
SCÉNARIO OPTIONS
UTILISATION
[ --options ]
ARGUMENTS
Par défaut, un nom de bibliothèque doit être fourni sauf si --version ou --real-version est
spécifié.
La sortie devrait normalement être adaptée pour être transmise à votre compilateur préféré.
--libs
(Aussi) imprimez les drapeaux de l'éditeur de liens. Les dépendances sont traversées dans l'ordre. Les dépendances de niveau supérieur seront
apparaissent plus tôt dans la ligne de commande que les dépendances de niveau inférieur.
--libs-only-L
Affiche la partie -L/-R de "--libs". Il définit le chemin de recherche des bibliothèques mais sans bibliothèques à
lier avec.
--libs-only-l
Affiche la partie -l de "--libs".
--libs-only-autre
Affiche la partie de "--libs" non couverte par "--libs-only-L" et "--libs-only-l", telle que
"--pthread".
--tout lister
Répertoriez tous les packages connus.
--cflags
(Aussi) imprime les drapeaux du compilateur et du préprocesseur C.
--cflags-seulement-I
Imprime la partie -I de "--cflags"
--cflags-seulement-autre
Imprime les parties de "--cflags" non couvertes par "--cflags-only-I".
--modversion
Imprimer la version d'un package donné.
--statique
Utilisez des dépendances et des bibliothèques supplémentaires si vous établissez un lien avec une version statique du fichier demandé
bibliothèque
--existe
Renvoie le succès (0) si le package existe dans le chemin de recherche.
--with-path=CHEMIN
Ajoutez "PATH" à la liste des chemins de recherche contenant les fichiers ".pc".
Cette option peut être spécifiée plusieurs fois avec des chemins différents, et ils seront tous
ajouté.
--env-seulement
En utilisant cette option, uniquement les chemins spécifiés dans "PKG_CONFIG_PATH" sont reconnus et tout
les valeurs par défaut codées sont ignorées.
--deviner-chemins
Appelez "gcc" et "ld" pour déterminer l'éditeur de liens par défaut et inclure les chemins. Les chemins par défaut seront
exclu des indicateurs explicites -L et -I.
--define-variable=VARIABLE=VALEUR
Définissez une variable, en remplaçant toute définition de variable de ce type dans le fichier .pc et en autorisant
votre valeur à interpoler avec les utilisations ultérieures.
--variable=VARIABLE
Cela renvoie la valeur d'une variable définie dans le fichier .pc d'un package.
--print-variables
Imprimez toutes les variables définies trouvées dans les fichiers .pc.
--version
La version cible de "pkg-config" émulée par ce script
--version-réelle
La version actuelle de ce script
--déboguer
Imprimer les informations de débogage
--silence-erreurs
Désactivez les erreurs. C'est la valeur par défaut pour les arguments non-libs/cflag/modversion
--erreurs-d'impression
Imprimer les erreurs dans STDERR et a priorité sur "--silence-errors"
--erreurs-courtes
Ignoré, mais reconnu pour sa compatibilité.
--erreurs-vers-stdout
Imprimer les erreurs sur STDOUT et a priorité sur "--print-errors"
ENVIRONNEMENT
les variables "PKG_CONFIG_PATH" et "PKG_CONFIG_LIBDIR" sont honorées et utilisées comme deux points-
liste délimitée (délimitée par des points-virgules sous Windows) de répertoires contenant des fichiers ".pc".
Les autres variables d'environnement reconnues à la fois par "pkg-config" et PkgConfig incluent :
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS
PKG_CONFIG_ALLOW_SYSTEM_LIBS
Si Win32API::Registry est installé, sous Windows (mais pas Cygwin), PkgConfig sera également
consultez ces clés de registre. Les noms sont ignorés, mais les valeurs sont des chemins contenant
fichiers ".pc".
HKEY_CURRENT_USER\Software\pkgconfig\PKG_CONFIG_PATH
HKEY_LOCAL_MACHINE\Software\pkgconfig\PKG_CONFIG_PATH
La prise en charge du registre doit être considérée comme quelque peu expérimentale, sujette à des changements dans le
futur, mais non sans raison. La raison de cette mise en garde est que cette
fonctionnalité est documentée à plusieurs endroits, mais je n'ai pas encore trouvé de version fonctionnelle qui
implémente cette fonctionnalité.
MODULE OPTIONS
PkgConfig->trouver
my $result = PkgConfig->find($libary, %options);
Recherchez une bibliothèque et renvoyez un objet de résultat. $library peut être soit le nom unique d'un
bibliothèque, ou une référence à un tableau de noms de bibliothèque
Les options se présentent sous la forme de clés de hachage et de valeurs, et les éléments suivants sont reconnus :
"chemin_recherche"
"search_path_override"
Ajouter les chemins de recherche en plus des chemins spécifiés dans $ENV{PKG_CONFIG_PATH} Le
value est une référence de tableau.
la variante "_override" ignore les valeurs par défaut (comme "PKG_CONFIG_PATH").
"chemin du fichier"
Spécifie le chemin complet du fichier .pc que vous souhaitez charger. Ce ne est pas
doivent être dans le chemin de recherche (bien que toutes les dépendances devront l'être). Utile si
vous connaissez le chemin complet du fichier .pc exact que vous voulez.
"exclude_cflags"
"exclude_ldflags"
"exclude_cflags_override"
"exclude_ldflags_override"
Certains fichiers ".pc" spécifient les chemins de recherche par défaut du compilateur et de l'éditeur de liens, par exemple
"-I/usr/include -L/usr/lib". Les spécifier sur la ligne de commande peut être problématique car
cela change radicalement l'ordre de recherche.
Les options ci-dessus ajouteront ou remplaceront les options qui sont exclues et
filtré.
Les options d'éditeur de liens et de compilateur exclus par défaut peuvent être obtenues via
@PkgConfig::DEFAULT_EXCLUDE_LFLAGS et @PkgConfig::DEFAULT_EXCLUDE_CFLAGS,
respectivement.
"statique"
Spécifiez également les bibliothèques statiques.
"no_recurse"
Ne pas récurer les dépendances. C'est utile pour faire juste des vérifications de version.
"VARS"
Définir un hashref de variables pour remplacer toutes les définitions de variables dans le .pc
des dossiers. Cela équivaut à l'option de ligne de commande "--define-variable".
Un objet "PkgConfig" est renvoyé et peut être interrogé sur les résultats :
$o->errmsg
Un message d'erreur, le cas échéant. Ceci est une chaîne et indique une erreur.
$o->pkg_exists
Valeur booléenne, true si le package existe.
$o->pkg_version
La version du paquet
$o->get_cflags
$o->get_ldflags
Renvoie les indicateurs du compilateur et de l'éditeur de liens, respectivement.
Dans un contexte de liste, ces méthodes renvoient une liste avec chaque argument divisé sur des espaces sans échappement.
Dans le contexte de la liste, renvoie une liste d'indicateurs de compilateur et d'éditeur de liens, respectivement.
Dans un contexte scalaire, renvoie une chaîne d'indicateurs de compilateur et d'éditeur de liens avec des espaces et des guillemets
échappé correctement.
$o->get_var($nom)
Obtenez la variable avec le nom donné.
PkgConfig->Devinez
Ceci est une méthode de classe et remplacera l'éditeur de liens par défaut codé en dur et inclura les chemins
avec ceux découverts en invoquant ldde Géographie (1) et avec la cpp (1).
Actuellement, cela ne fonctionne qu'avec "ld" et GNU "ld" fournis par GCC.
INSTALLER
Le "Makefile.PL" fourni avec "PkgConfig" peut prendre une ou plusieurs options "--script" pour
changement du nom du ou des scripts installés.
--script ppkg-config
Ceci est la valeur par défaut et fonctionne sur toutes les plateformes
--script pkg-config.pl
Ceci est installé par défaut sur toutes les plates-formes sauf pour Windows, où le .pl peut
confondre le shell et provoquer l'ouverture du script dans un éditeur de texte.
--script pkg-config
C'est le nom par défaut du vrai "pkg-config" et vous devez donc spécifiquement
activez-le si vous le souhaitez.
--script aucun
N'installez aucun script.
Exemple, installez tous les noms de script :
% perl Makefile.PL --script ppkg-config --script pkg-config.pl --script pkg-config
Exemple, n'installez aucun script :
% perl Makefile.PL --script aucun
Vous pouvez également définir la variable d'environnement PERL_PKG_CONFIG_SCRIPTS sur le --script souhaité
value (séparant chaque nom de script par une virgule ",") pour s'assurer que les mises à niveau de PkgConfig
faire de même.
MISES EN GARDE
Sur Strawberry Perl, "ppkg-config" agit comme Strawberry est le système. Cela signifie que
· Les fichiers .pc fournis avec Strawberry sont recherchés par défaut.
· Les répertoires d'inclusion et lib de Strawberry sont utilisés pour calculer les listes d'exclusion.
À partir de Strawberry 5.20.0.1, PkgConfig est fourni avec Strawberry et "pkg-config" est
installé par défaut (en plus de "ppkg-config", bien que l'alias "ppkg-config" ne soit PAS
livré avec Strawberry lui-même).
Pour plus de détails sur la façon de corriger les fichiers .pc fournis avec les anciens Strawberries, consultez le
"README.win32" fourni avec cette distribution.
BOGUES
L'ordre des drapeaux ne correspond pas exactement à celui de "pkg-config". De la mienne
observation, il semble que ce module fasse un meilleur travail, mais je peux me tromper.
Contrairement à "pkg-config", la fonction de scripts "--exists" renverra une valeur différente de zéro si un package or
l'une de ses dépendances est manquante. Cela diffère du comportement de "pkg-config" qui
vérifiera simplement la définition du package lui-même (sans dépendances).
Utilisez ppkg-configp en ligne à l'aide des services onworks.net