Где находится / system / bin / linker из цепочки инструментов NDK при кросс-компиляции - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь построить проект autoconf с использованием цепочки инструментов NDK на хосте CentOS, чтобы я мог использовать общие объекты, созданные как часть Android-приложения native-lib.

При компиляции я получаю ошибки об отсутствующем файле /system/bin/linker64. (bad ELF interpreter: No such file or directory)

Является ли это частью цепочки инструментов NDK, и я могу просто sym-link / system / bin / linker64 к чему-то в цепочке инструментов, или к моему CentOS-динамическому компоновщику, или как?

Я настроил свою среду с помощью:

$NDK/build/tools/make_standalone_toolchain.py \
  --arch x86_64\
  --api 26 \
  --install-dir=my-toolchain

и я нашел этот файл для настройки среды:

# Add the standalone toolchain to the search path.
export PATH=$PATH:`pwd`/my-toolchain/bin

# Tell configure what tools to use.
target_host=x86_64-linux-android
export AR=$target_host-ar
export AS=$target_host-clang
export CC=$target_host-clang
export CXX=$target_host-clang++
export LD=$target_host-ld
export STRIP=$target_host-strip

# Tell configure what flags Android requires.
export CFLAGS="-fPIE -fPIC"
export LDFLAGS="-pie

Я запустил мой скрипт configure с

./configure --host=$target_host ....

1 Ответ

0 голосов
/ 12 января 2019

Nowhere. Это не часть цепочки инструментов.

Если вы видите это как часть вашей сборки, это означает, что что-то пыталось запустить двоичный файл Android на вашем хосте. Этого не должно было случиться.

Мое предположение: ваш проект autoconf настроен для запуска тестового двоичного файла "работает ли компилятор", и он не понимает, что x86_64 Android отличается от x86_64 GNU / Linux. Я видел эту проблему в других проектах (gdbserver - тот, который приходит на ум).

Вам нужно посмотреть поближе на то, что запускается и почему; здесь недостаточно информации, чтобы с уверенностью сказать, что вам нужно исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...