خطأ في الإصدار libtool خطأ غير متطابق
سؤال
عند بناء طلبي باستخدام KDEvelop 3.5 على Ubuntu 10.04 ، أحصل على الأخطاء التالية:
libtool: Version mismatch error. This is libtool 2.2.6 Debian-2.2.6a-4, but the
libtool: definition of this LT_INIT comes from libtool 2.2.6b.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6 Debian-2.2.6a-4
libtool: and run autoconf again.
make[2]: *** [wktools4] Error 63
make[2]: Target `all' not remade because of errors.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
*** Exited with status: 2 ***
أين يمكنني الحصول على النسخة المطلوبة من Libtool ، أو كيف يمكنني إعادة إنشاء Aclocal.m4؟
المحلول
حاول الجري
autoreconf --force --install
./configure
make
في الدليل الجذر لمشروعك.
إذا لم ينجح ذلك ، فحاول الجري make maintainer-clean
أولاً ثم انتقل إلى الخطوة 1.
إذا كان ذلك لا يزال لا يعمل ، فتشرك make maintainer-clean
, ، ثم احذف كل ملف تم إنشاؤه في دليل الجذر لمشروعك ؛ بما فيها aclocal.m4
, ، أي m4
دليل ، أي autom4te.cache
الدليل، configure
, Makefile.in
, config.h
, config.h.in
, config.status
, libtool
, ltmain.sh
, ، إلخ. ثم انتقل إلى الخطوة 1.
لماذا هذا يعمل: libtool
و aclocal.m4
كلا الملفات التي يتم إنشاؤها بواسطة نظام البناء الخاص بك. إذا كانت خارج المزامنة (التي تم إنشاؤها بواسطة إصدارات مختلفة من أدوات الإنشاء) ، فستحصل على هذا الخطأ. عادةً ما لا ينبغي أن يحدث ذلك ، ولكن مثال على شيء يمكن أن يسبب ذلك عند التحقق من الملفات التي تم إنشاؤها إلى عنصر تحكم المصدر.
ما يفعله هذا الحل هو حذف وتجديد جميع الملفات المولدة تلقائيًا. بمجرد محوها وتجديدها ، لا يمكن أن يكونوا خارج المزامنة بعد الآن.
نصائح أخرى
محاولة
autoreconf -i
ال -i
الخيار مهم.
إذا كنت تستخدم Anaconda ، فقد يكون ذلك بسبب libtool و autoconf من مصادر مختلفة. يمكنك التحقق من ذلك من خلال التنفيذ
which libtool
which autoconf
كان ليبتول الخاص بي من كوندا وكان أوتوكونف حزمة نظام. قم بإلغاء تثبيت Autoconf وتثبيته مرة أخرى باستخدام conda
apt remove -y autoconf
(Ubuntu/Debian)
conda install -c anaconda autoconf
ملاحظة: قد تحتاج إلى تثبيت Automake أيضًا.
conda install -c anaconda automake
ربما قمت بتثبيت اثنين من libtools من إصدار مختلف. حاول apt-get remove all
(حتى لا تحصل على شيء عندما تكتب which libtool
في سطر الأوامر) ، ثم apt-get install
الشخص الذي تحب.
حاول تشغيل Aclocal
أقوم بحل هذا إلغاء تثبيت libtool والتركيب من المنبع: git clone git: //git.savannah.gnu.org/libtool.git
sudo apt-get install texinfo autoconf automake make ./bootstrap ./configure make sudo make install
لم يعمل أي مما سبق.
ثم نجح هذا:
autoconf -f
./configure
make
لم يعمل أي مما سبق. بعد أن قمت بإلغاء تنشيط بيئة كوندا ، نجحت:
source deactivate
أنا أيضا واجهت هذه المسألة. في حالتي ، في إخراج ./autogen.sh ، هناك:
libtoolize: يجب عليك إضافة محتويات الملفات التالية إلى "aclocal.m4 ': libtoolize:' /aclocal/libtool.m4 'libtoolize:' /aclocal/ltoptions.m4 'libtoolize:' /aclocal/ltversion.m4 'libtoolize: فكر في إضافة "AC_CONFIG_MACRO_DIRS ([M4])" إلى Config.ac ، libtoolize: وإعادة تشغيل libtoolize و aclocal. libtoolize: النظر في إضافة '-i m4' إلى aclocal_amflags في makefile.am.
أنا فقط ألحق المحتوى ملفات *.m4 الثلاثة تحت / aclocal / إلى ملف aclocal.m4:
cat <a path>/aclocal/libtool.m4 <a path>/aclocal/ltoptions.m4 <a path>/aclocal/ltversion.m4 >> aclocal.m4
ثم جعل.
ها هو الخطأ:
libtool: Version mismatch error. This is libtool 2.4.2 Debian-2.4.2-1.11, but the
libtool: definition of this LT_INIT comes from libtool 2.4.6.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1.11
libtool: and run autoconf again.
لم يعمل أي مما سبق.
ثم نجح هذا:
wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz -O /root/libtool-2.4.6.tar.gz
tar xzvf /root/libtool-2.4.6.tar.gz -C /root
cp -f /usr/share/libtool/build-aux/ltmain.sh /usr/share/libtool/build-aux/ltmain_sh
cp -f /root/libtool-2.4.6/build-aux/ltmain.sh /usr/share/libtool/build-aux/ltmain.sh
autoreconf -fi
./configure
make