سؤال

لدي مشروع بناء مع autotools ، وتنقسم إلى قسمين مجلدات ؛ أول واحد ، ليب, يخلق بعض المكتبات ، والثاني واحد ، أدوات, الروابط ضدهم.
فشل البناء لأن libtool تسمية المكتبات على النحو التالي حين وإرتباط:

mylib.1.0.0 -> mylib.1.0.0U

بعد إعادة تسمية يحدث على أي حال, الاسم السابق لا يتم استعادة, ولا هو جديد mylib.1.0.0 التي تم إنشاؤها ، وبالتالي فإن وصلات رمزية مثل mylib لا تزال تشير إلى اسم دون اضافية U وربط فشل.
هل هناك أي طريقة لتجنب هذا ؟ أو ربما حتى إلى تجنب وإرتباط في كل شيء ؟ أنا باستخدام libtool النسخة 1.5.6.

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

المحلول

على ما يبدو حصلت عليه...
المشكلة هي استنساخه بسهولة مع البنية التالية:

  • a ليب المجلد بناء:
    • liba
    • libb, اعتمادا على liba
  • a src المجلد بناء prog, الذي يربط libb

ثم يجب عليك تحديد هذا في lib/Makefile.صباحا:

lib_LTLIBRARIES = \
    libb.la \
    liba.la

عند هذه النقطة liba.لذلك.1.0.0 U الملف سيتم إنتاجها.تحديد بدلا من ذلك (لاحظ أن ترتيب المكتبات تغيير)

lib_LTLIBRARIES = \
    liba.la \
    libb.la

بناء يعمل بشكل جيد.
أوافق على أن تحديد الأشياء في الترتيب الصحيح هو في أي حال أفضل شيء القيام به ؛ ما لا يزال غير واضح لي اذا كان هذا هو libtool علة أو لا...

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