ديبيان انخفض الدعم لملفات .LA؛ كيف يمكنني بناء الآن؟

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

  •  13-09-2019
  •  | 
  •  

سؤال

خلفية

لقد صادفت مؤخرا عبر Fuppes UPNP Media Server وبدا أنه رائع. قمت بتثبيته على خادم منزلي وبدأ استخدامه في دفق الفيديو إلى Xbox الخاص بي. عملت حقا حقا وكنت سعيدا به. ثم قمت بترقية توزيع الخوادم الخاصة بي وتوقف Fuppes عن العمل؛ أعرف الآن أنه لأن المكتبات المختلفة قد انخفضت، على وجه التحديد بدأت دبيان في إسقاط ملفات .LA Libtool من غالبية حزمهم.

المشكلة / السؤال

لذلك سؤالي هو، كيف يمكنني بناء Fuppes الآن أنني لا أملك ملفات .LA ل Libtool؟ بشكل أكثر تحديدا، هذه هي رسالة الخطأ الدقيقة:

/bin/sed: can't read /usr/lib/libogg.la: No such file or directory
libtool: link: `/usr/lib/libogg.la' is not a valid libtool archive

ليس لدي ملف /usr/lib/libogg.la بعد الآن. هذا يثبت ذلك من المحطة:

# dpkg -L libogg-dev | grep "a$"
/usr/lib/libogg.a
#

أنا فقط بحاجة إلى الإشارة في الاتجاه الصحيح حقا. لقد قرأت مستندات libtool-automake لكن ما زلت أفتقد تلك المعلومات التي أخبرني كيفية تجميعها الآن أنني لم أعد لدي libogg.la بعد الآن. باختصار، كيف يمكنني تجميعها في غياب ملفات .LA؟

NB هذا كل شيء على أوبونتو كرمية كوال

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

المحلول

أعتقد أن دبيان قد يسقط ملفات .LA لأنه يمكن أن يسبب مشاكل عندما تقوم ببناء كل من 32 بت و 64 بت. إذا وجدت libtool ملف .la، فهذا له عادة سيئة في وضع المسار الكامل إلى المكتبة في أمر الارتباط، وهذا هو في بعض الأحيان المكتبة الخاطئة (32 بت بدلا من 64 بت أو العكس). على Solaris، كان لدي مشكلة في libtool الرغبة في الارتباط /usr/lib/libintl.so بدلا من /usr/lib/64/libintl.so، كل ذلك لأنه موجود /usr/lib/libintl.la

يجب أن تكون قادرا على الارتباط بدون ملف .LA من خلال تحديد -logg على خط Mumble_libadd (استبدل "الغمز" باسم الحزمة التي تقوم ببناءها) ضمن Makefile.am المناسب. إذا لم يتمكن الرابط لسبب ما لسبب ما، فيمكنك تحديد مسار إليه عن طريق إضافة شيء مثل هذا:

mumble_ldflags = -r / usr / lib -l / usr / lib

ولكن في هذا المثال، يجب أن أصدق ذلك / USR / LIB في مسار البحث الافتراضي للمكتبات.

إلى رسالة الخطأ الخاصة بك مع SED، لا أعرف لماذا تستخدم Fuppes SED للعثور على /usr/lib/libogg.la، ولكن هذا قد يكون ثابتا من خلال تغيير مناسب من Libtool (مثل في Autoconf أو Automake). أظن أن هناك تبديل في مكان ما في "تكوين" يساعد في هذه المشكلة (مثل - with-ogg أو شيء من أي شيء). تشغيل "تكوين --HELP" والبحث عن بعض تلميحات هناك.

نصائح أخرى

يجب أن لا تحتاج إلى ملفات .LA. لم تقم بلصق الأجزاء المهمة من إخراج الأمر - ما هي الخطوة التي تحاول الارتباط بملف libogg.la. تخميني هو libtool، وتخمين بلدي هو أنه بعد الترقية، تقوم بتشغيلها في مصدر Dir Dir أو VCS، دون إعادة تشغيل Autogen.Sh أو تكوين حسب الاقتضاء.

باختصار، لا تعطي معلومات كافية لمساعدتك بشكل أكبر (كيف حصلت على Fuppes؟ كيف قمت ببناءها؟ كيف حاولت بناءها بعد الترقية؟). على الأرجح إما أن نسيت تجديد ملفات البناء، أو يتم سحب بعض خطوات رابط أخرى في ملف .LA ويحتاج إلى تجديده (على سبيل المثال، ملف PKG-Config).

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