PKG-config: طريقة محايدة منصة لمعرفة مكان تثبيت ملف .pc الخاص بي؟

StackOverflow https://stackoverflow.com/questions/2209441

سؤال

كيف أعرف مكان تثبيت بلدي .الكمبيوتر ملف؟ يتم وضع هذه الملفات في أماكن مختلفة على أنظمة التشغيل المختلفة. الهدف هو أن تكون قادرا على استخدام شيء مثل $(INSTALL) mylib.pc $$(pkg-config --pcdir) في الهدف تثبيت. اعتقدت pkg-config سيكون قادرا على أن تخبرني بطريقة أو بأخرى، ولكن لا يمكن العثور على أي شيء.

أبحث عن حل "مستقل" قابل للاستخدام في Makefile Plain (يجب ألا يحتاج إلى دعم من AutoTools أو ما شابه ذلك).

هل كانت مفيدة؟

المحلول

تحديث: من الواضح أن هناك الآن طريقة للقيام بذلك:

pkg-config --variable pc_path pkg-config

وجدت في هذا تقرير الشوائب (انظر التعليق رقم 4). تظهر صفحة الرجل الحالي وثيقة هذا.

الإجابة الأصلية:

حل الزخرف الرهيب (على افتراض بورن شل):

pkg-config --debug 2>&1 |grep Scanning | sed -e 's/Scanning directory //' -e "s/'//g"

هذا قد يمنحك أكثر من موقع واحد.

تعديل بواسطة لتشوس شخص ما

نسخة أقصر

pkg-config --debug 2>&1 | sed -ne '/Scanning directory /s///p'

والتوقف بعد الدليل الأول:

pkg-config --debug 2>&1 | sed -ne '/Scanning directory /{s///p;q;}'

نصائح أخرى

اعتبارا من PKG-Config-Config 0.24، يمكنك القيام ب "PKG-Config - Variable = PC_PATH PKG-CONFIG".

https://bugs.freedesktop.org/show_bug.cgi؟id=14975.

يجب أن تذهب إلى $ {libdir} / pkgconfig (IE $ {prefix} / lib / pkgconfig)

أساسا إذا قمت بتثبيت المكتبات وتذهب في $ {libdir} ثم يجب أن يكون ملف .pc الخاص بك في $ {libdir} / pkgconfig وليس في أي مكان آخر.

لسوء الحظ، للحصول على الأسهم pkg-config التثبيت (للإصدار 0.23)، لا توجد طريقة لاستخراج "مسار الكمبيوتر الشخصي الافتراضي، قصيرة strings على ثنائي (على سبيل المثال، strings /usr/bin/pkg-config | grep '/usr/.*/pkgconfig').

إذا كنت قادرا على تثبيت بناء مخصص، فما عليك سوى تصحيحه لكتابة قيمة PKG_CONFIG_PC_PATH عند تشغيل الخيار المناسب.

خيار آخر، ربما لن يساعدك (ولكن أذكره على أي حال لتكليف)، هو ضبط PKG_CONFIG_PATH متغير البيئة عند الاتصال pkg-config.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top