سؤال

أحتاج إلى تضمين غليظ رؤوس للمشروع الذي تم بناؤه بنظام يستند إلى 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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top