Android Building Toolchain не может найти/отсутствовать каталог заголовка STLAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Building Toolchain не может найти/отсутствовать каталог заголовка STL

Сообщение Anonymous »

Я создал набор инструментов Android NDK вручную. Все работает, за исключением того, что когда я использую компилятор, он не может найти базовые элементы STL, такие как файлы . Поэтому он не может скомпилировать код, содержащий STL, поскольку по умолчанию не знает, где искать заголовки. У меня никогда не было этой проблемы до использования специальной или готовой цепочки инструментов. Однако, если я вручную добавлю каталоги включения, например

Код: Выделить всё

 -I$(NDK_TOOLCHAIN)/arm-linux-androideabi/include/c++/4.6/
Тогда все работает нормально. Добавлять каждый важный каталог вручную очень сложно (их больше, чем этот). Наверняка что-то сломалось в процессе.

Вот шаги, которые я выполнил, чтобы собрать это:

Код: Выделить всё

 sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl

Download NDK

Untar NDK to [SOME_LOCATION], using /opt/ndk/

Set NDK_ROOT=/opt/ndk/

./build/tools/download-toolchain-sources.sh src/

Download MPC 0.9

Move mpc tar to ./src/mpc/

./build/tools/build-gcc.sh --gmp-version=4.3.2 --mpc-version=0.9 --mpfr-version=2.4.2 --binutils-version=2.21 $(pwd)/src $(pwd) arm-linux-androideabi-4.6

./build/tools/build-gcc.sh --gmp-version=4.3.2 --mpc-version=0.9 --mpfr-version=2.4.2 --binutils-version=2.21 $(pwd)/src $(pwd) x86-4.6

./build/tools/build-gcc.sh --gmp-version=4.3.2 --mpc-version=0.9 --mpfr-version=2.4.2 --binutils-version=2.21 $(pwd)/src $(pwd) mipsel-linux-android-4.6
Все файлы STL находятся в нужном месте. Все заголовки и скомпилированные библиотеки для каждой версии, если я создаю АВТОНОМНУЮ цепочку инструментов после использования в качестве эталона этих специально созданных цепочек инструментов.

==
ОБНОВЛЕНИЕ

Заставляет gcc выдавать включаемые пути поиска:

Код: Выделить всё

  echo "#include  int main(){}" > t.c; /opt/android-9_arm/bin/arm-linux-androideabi-gcc -v t.c; rm t.c
Это содержит путь поиска в разделе «Включает:

»

Код: Выделить всё

 /opt/android-9_arm/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/include
В этом месте действительно находится следующее ./cxx/4.6/STL_HEADERS

Сравнение вывода с NDK сборка от гугла действительно отличается в серьёзных местах. Реальный вопрос теперь заключается в том, как мне гарантировать, что моя пользовательская сборка GCC указывает на соответствующее местоположение заголовка G++ STL.

Подробнее здесь: https://stackoverflow.com/questions/114 ... -directory
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»