Geben Sie portable Glib -Header in Autoconf/Automake ein
-
20-09-2019 - |
Frage
Ich muss die einbeziehen Glib Header für ein Projekt, das mit einem autokonfbasierten System zur Portabilität erstellt wurde.
Wie kann ich die Glib -Header sicher tragbar importieren? ich weiss Bescheid PKG-Konfiguration, Aber das ist nicht vollständig tragbar (da einige Systeme es nicht haben und ich es vorziehen würde, nur für die Konfiguration auf Autoconf zu stützen).
Lösung
Der Glib 2.22 INSTALL
Datei heißt, dass pkg-config
ist eine Voraussetzung für die Installation dieser Bibliothek. Ich bin nicht scheinbar (Wortspiel beabsichtigt!); Aussage über diese Anforderung ist eines der ersten Dinge auf der Spitze der INSTALL
Datei.
Aus dem Text umgeben ist es unklar, ob pkg-config
wird benötigt, um Glib selbst zu kompilieren. Es ist jedoch klar, dass GLIB 2.22-Autoren nicht beabsichtigt, dass Benutzer sich gegen GLIB zusammenstellen, ohne PKG-Konfiguration zu haben. Insbesondere Glibs make install
wird installieren .pc
Dateien angemessen.
Legen Sie den Benutzer für die Plattform -Portabilität an, festzulegen $PKG_CONFIG_PATH
passend.
Andere Tipps
Durch Verwendung der PKG_CHECK_MODULES
Makro, autokonfgeneriert configure
Skripte können PKG-Config-Daten automatisch abrufen. Zum Beispiel das Hinzufügen dieser Zeile zu Ihrem Hinzufügen configure.ac
Datei:
PKG_CHECK_MODULES([DEPS], [glib-2.0 >= 2.24.1])
wird den resultierenden verursachen configure
Skript, um sicherzustellen, dass die installierte Version von GLIB-2.0 größer oder gleich Version 2.24.1 ist und an Variablen angehängt ist DEPS_CFLAGS
und DEPS_LIBS
die Ausgabe von pkg-config --cflags glib-2.0
und pkg-config --libs glib-2.0
, beziehungsweise. Sie verwenden dann das $(DEPS_CFLAGS)
und $(DEPS_LIBS)
Variablen in der _CFLAGS
und _LDADD
Vorwahlen:
bin_PROGRAMS = hello
hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)