Libstdc .la is not a valid libtool archive error
Sisukord
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