PKG-config: طريقة محايدة منصة لمعرفة مكان تثبيت ملف .pc الخاص بي؟
-
18-09-2019 - |
سؤال
كيف أعرف مكان تثبيت بلدي .الكمبيوتر ملف؟ يتم وضع هذه الملفات في أماكن مختلفة على أنظمة التشغيل المختلفة. الهدف هو أن تكون قادرا على استخدام شيء مثل $(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".
يجب أن تذهب إلى $ {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
.