سؤال

عند بناء طلبي باستخدام 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top