Question

J'ai besoin d'inclure le Désinvolte En-têtes pour un projet construit avec un système basé sur AutoConf pour la portabilité.

Comment puis-je importer en toute sécurité les en-têtes glibs de manière portable? Je sais pkg-config, mais ce n'est pas entièrement portable (car certains systèmes ne l'ont pas et je préférerais que vous comptez uniquement sur AutoConF pour la configuration).

Était-ce utile?

La solution

Le glib 2.22 INSTALL le fichier indique que pkg-config est une exigence pour installer cette bibliothèque. Je ne suis pas glib (jeu de mots voulu!); L'énoncé de cette exigence est l'une des premières choses en haut du INSTALL dossier.

D'après le texte entourant, il n'est pas clair si pkg-config est nécessaire pour compiler Glib lui-même, mais il est clair que les auteurs GLIB 2.22 n'ont pas l'intention que les utilisateurs se compilent avec Glib sans avoir PKG-Config. En particulier, les glibs make install va installer .pc fichiers de manière appropriée.

Pour la portabilité de la plate-forme, demandez à l'utilisateur de définir $PKG_CONFIG_PATH de manière appropriée.

Autres conseils

En utilisant le PKG_CHECK_MODULES macro, généré par l'autoconf configure Les scripts peuvent récupérer automatiquement les données PKG-Config. Par exemple, ajoutant cette ligne à votre configure.ac dossier:

PKG_CHECK_MODULES([DEPS], [glib-2.0 >= 2.24.1])

provoquera le résultat configure Script pour s'assurer que la version installée de GLIB-2.0 est supérieure ou égale à la version 2.24.1 ainsi qu'à ajouter des variables DEPS_CFLAGS et DEPS_LIBS la sortie de pkg-config --cflags glib-2.0 et pkg-config --libs glib-2.0, respectivement. Vous utilisez alors le $(DEPS_CFLAGS) et $(DEPS_LIBS) variables dans le _CFLAGS et _LDADD Primaires:

bin_PROGRAMS = hello

hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top