Libstdc .la is not a valid libtool archive error

Allikas: Pingviini viki

Veateatest

Paljud Gentoo kasutajad võivad peale GCC uuendamist avastada, et erinevate programide kompileerimisel saate mõne taolise errori:

libtool: link: `/usr/lib/gcc/i686-pc-linux-gnu/3.3.4/libstdc++.la' is not a valid libtool archive

või

libtool: link: `/usr/lib/gcc/i686-pc-linux-gnu/3.4.2/libstdc++.la' is not a valid libtool archive

või

libtool: link: `/usr/lib/gcc/i686-pc-linux-gnu/3.4.3.3.4.3.3/libstdc++.la' is not a valid libtool archive

Viimane error tuleb siis, kui käivitasite skripti fix_libtool_files.sh mitu korda. Kuid just selle skriptiga ongi Teil võimalik vabaneda eelpool toodud erroritest.

Veateate analüüsimine

Kõigepealt teeme kindlaks, mis GCC libstdc failid puudu on, selleks vaadake kompileerimisel antud veateadet:

grep: /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/libstdc++.la: No such file or directory ->

siit saame järgmise info:

/usr/${ERROR_ROOT_DIRECTORY}/${CHOST}/${GCC_VERSION}/libstdc++.la

Ehk saate ära kontrollida, kas Teie CHOST on õige (juhul, kui Te pole süsteemi ümber kompileerinud teisele platvormile, siis see peaks õige olema). Ja GCC_VERSION-ist saate teada, mis versiooni libsdc faile süsteem otsib.

fix_libtool_files.sh kasutamine

Ja selle parandamiseks käivitage root kasutaja õigustes järgmine käsk:

fix_libtool_files.sh ${GCC_VERSION}

Näide

Ehk kui saite errori:

libtool: link: `/usr/lib/gcc/i686-pc-linux-gnu/3.3.4/libstdc++.la' is not a valid libtool archive

siis käivitage järgmine käsk:

fix_libtool_files.sh 3.3.4

fix_libtool_files.sh lisavõtmed

fix_libtool_files.sh skriptil on olemas veel mõningad lisavõtmed, mida saab kasutada. Juhul, kui uuendasite nii GCC kui ka CHOST-i, siis tuleks Teil käivitada järgnev käsk (näite puhul oli Teie vana CHOST i586-pc-linux-gnu, mille uuendasite näiteks i686-pc-linux-gnu-le ja GCC uuendatud 3.2-lt 3.4-le)

fix_libtool_files.sh 3.2 --oldarch i586-pc-linux-gnu


Juhul, aga kui muutsite ainult CHOST-i ja jätsite GCC uuendamata, siis käivitage järgnev käsk (äite puhul oli Teie vana CHOST i586-pc-linux-gnu, mille uuendasite näiteks i686-pc-linux-gnu-le):

fix_libtool_files.sh `gcc -dumpversion` --oldarch i586-pc-linux-gnu