Здравствуйте. У меня следующий вопрос. Мне необходимо скомпилировать Google Android 1.5 под SuSE 11.2. Рекомендуемая версия GCC для этих целей - 4.3, а по умолчанию с данным дистрибутивом устанавливается GCC 4.4 Я скачал исходники и собрал GCC 4.3.4:
./configure
make
make install
(всё - под sudo)
Сборка прошла успешно, все бинарники и прочие файлы были скопированы в местоположение по умолчанию (/usr/local/bin и т.п.) Я также поменял ссылки gcc и g++ в каталоге /usr/bin на соответствующие бинарники из свежесобранного GCC 4.3.4.
Проблема в том, что при запуске make Android'а я получаю следующую ошибку:
/usr/lib/gcc/i586-suse-linux/4.4/cc1: /usr/local/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/libppl_c.so.2)
/usr/lib/gcc/i586-suse-linux/4.4/cc1: /usr/local/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/libppl.so.7)
/usr/lib/gcc/i586-suse-linux/4.4/cc1: /usr/local/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/libgmpxx.so.4)
Т.е. запускается cc1 из установленного вместе с системой GCC 4.4, что порождает конфликты версий библиотек.
При этом по команде
gcc --print-prog-name cc1
я получаю
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.3.4/cc1
И то же самое - для /usr/bin/g++. Т.е. gcc и g++ из /usr/bin верно ссылаются на cc1 своей версии, но при запуске Makefile Android'а всё равно запускается cc1 из старой версии. Хотелось бы узнать причины столь странного поведения.
На всякий случай: ./configure для Android'а не делается, Makefile там изначально готовый.
Извините за возможно ламерский вопрос.