تشمل POLALY رؤوس GliB في Autoconf / Automke
-
20-09-2019 - |
سؤال
أحتاج إلى تضمين غليظ رؤوس للمشروع الذي تم بناؤه بنظام يستند إلى Autoconf إمكانية ذلك.
كيف يمكنني استيراد رؤوس GliB بأمان بطريقة محمولة؟ وأنا أعلم عن pkg-config., ، ولكن هذا ليس محمول تماما (نظرا لأن بعض الأنظمة لا تملكها وأفضل الاعتماد على Autoconf فقط للتكوين).
المحلول
GLIB 2.22. INSTALL
ينص الملف على ذلك pkg-config
هو شرط لتثبيت هذه المكتبة. أنا لا أكون glib (التورية المقصودة!)؛ بيان هذا الشرط هو واحد من أول الأشياء في الجزء العلوي من INSTALL
ملف.
من النص المحيط بأنه غير واضح ما إذا كان pkg-config
هناك حاجة إلى ترجمة Glib نفسها، ومع ذلك، فمن الواضح أن مؤلفي GLIB 2.22 لا ينوي أي مستخدمين لتجميعها ضد GLIB دون وجود PKG-Config. على وجه الخصوص، glib make install
سوف تثبيت .pc
الملفات بشكل مناسب.
للحصول على قابلية النظام الأساسي، قم بتوجيه المستخدم لتعيين $PKG_CONFIG_PATH
بشكل مناسب.
نصائح أخرى
باستخدام PKG_CHECK_MODULES
ماكرو، أو أوكونف الناتج configure
يمكن لبرامج النصوص استرداد بيانات PKG-Config تلقائيا. كمثال، مضيفا هذا الخط إلى configure.ac
ملف:
PKG_CHECK_MODULES([DEPS], [glib-2.0 >= 2.24.1])
سوف تسبب الناتج configure
البرنامج النصي للتأكد من أن الإصدار المثبت من Glib-2.0 أكبر من الإصدار 2.24.1 بالإضافة إلى إلحاق المتغيرات DEPS_CFLAGS
و DEPS_LIBS
إخراج pkg-config --cflags glib-2.0
و pkg-config --libs glib-2.0
, ، على التوالى. ثم تستخدم $(DEPS_CFLAGS)
و $(DEPS_LIBS)
المتغيرات في _CFLAGS
و _LDADD
الانتخابات التمهيدية:
bin_PROGRAMS = hello
hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)