2010-06-22 9 views
53

Podczas budowania mojej aplikacji z KDevelop 3.5 na Ubuntu 10.04, otrzymuję następujące błędy:libtool błąd wersja niedopasowanie

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 *** 

Gdzie mogę uzyskać potrzebne wersji libtool, lub w jaki sposób mogę odtworzyć aclocal.m4?

Odpowiedz

102

Spróbuj uruchomić

autoreconf --force --install 
./configure 
make 

w katalogu głównym projektu.

Jeśli to nie zadziała, spróbuj uruchomić make maintainer-clean pierwszy, a następnie przejdź do kroku 1.

Jeśli to nie zadziała, uruchom make maintainer-clean, a następnie usunąć każdy wygenerowany plik w katalogu głównym projektu; w tym aclocal.m4, dowolny katalog m4, dowolny katalog autom4te.cache, configure, Makefile.in, config.h, config.h.in, config.status, libtool, ltmain.sh itd Następnie przejdź do kroku 1.

Dlaczego to działa:libtool i aclocal.m4 są oba pliki, które są generowane przez Twój system kompilacji. Jeśli nie są one zsynchronizowane (wygenerowane przez różne wersje narzędzi do kompilacji), pojawia się ten błąd. Zwykle to nie powinno się zdarzyć, ale przykładem czegoś, co może go powodować, jest sprawdzanie wygenerowanych plików pod kątem kontroli źródła.

To rozwiązanie polega na usunięciu i ponownym wygenerowaniu wszystkich automatycznie wygenerowanych plików. Gdy zostaną skasowane i zregenerowane, nie będą już mogły być zsynchronizowane.

+4

Nie chcę edytować odpowiedzi, ponieważ nie rozumiem, ale miałem ten błąd, a 'autoreconf' nie był wystarczający.Musiałem uciekać: 'aclocal; libtoolize --force; autoheader; autoconf' – djeikyb

+2

'autoreconf' nie robi nic innego niż uruchamiać wszystkie te programy dla ciebie. Dobrym pomysłem jest dodanie opcji '--force', ale edytuję odpowiedź. – ptomato

+0

Próbowałem tego z php5 na Ubuntu 12.04, ale rzeczy poszły gorzej po tym poleceniu: Nie jestem w stanie pomyślnie wykonać './Configure' po tym – hek2mgl

1

Spróbuj uruchomić aclocal

+1

dziękuję za odpowiedź. Czy mógłbyś być bardziej konkretny? Których opcji muszę użyć? Dzięki! – mspoerr

9

Spróbuj

autoreconf -i 

Opcja -i jest ważne.

1

Być może zainstalowałeś dwa libtools innej wersji. Wypróbuj apt-get remove all (dopóki nic nie dostaniesz, gdy wpiszesz which libtool w wierszu poleceń), następnie apt-get install ten, który Ci się podoba.

+1

Nie zdawałem sobie z tego sprawy, dopóki nie uruchomię której libtool i okaże się, że wskazuje na moją instalację anakonda. Dzięki! – Yadli

0

rozwiązać że odinstalowanie libtool systemu i zainstalowanie od góry: git clone git: //git.savannah.gnu.org/libtool.git

sudo apt-get install texinfo autoconf automake make 
./bootstrap 
./configure 
make 
sudo make install
0

Żadne z powyższych pracował.

Wtedy to działało:

autoconf -f 
./configure 
make 
0

Żadne z powyższych pracował. Po I wyłączona obsługa środowiska Conda, to działało:

source deactivate