Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как скомпилировать простой нативный код с помощью Android.mk?

Автор вопроса: user492922Ответов: 2

В частности, я пытаюсь скомпилировать двоичный файл chainDD su. Я пытался использовать ndk-build, но, похоже, мне нужно установить NDK_PROJECT_PATH, но что это должно быть установлено, в документации не описано.

  • Обычно вы запускаете ndk-build из своего проекта - сработает ли он, если вы это сделаете? Scott C Wilson 02.05.2011
  • Я запустил ndk-build, и он пожаловался на NDK_PROJECT_PATH. user492922 02.05.2011
  • Какую версию NDK вы используете? Scott C Wilson 02.05.2011
  • Можете ли вы установить NDK_PROJECT_PATH на фактический путь вашего проекта (скажем, $NDK_DIR/samples/your-project, где $NDK_DIR - это путь к NDK)? Scott C Wilson 03.05.2011
  • У меня нет большого опыта разработки Android, поэтому я не уверен, каковы минимальные составляющие проекта Android. Достаточно ли файла Android.mk вместе с моими исходными файлами? В настоящее время я устанавливаю свой NDK_PROJECT_PATH в каталог моих исходных файлов и Android.mk. Почему это должен быть подкаталог ndk? user492922 03.05.2011
  • Что ж, я изменил структуру каталогов, поместив все в $NDK/samples/su-binary/jni/, и adb запускается, но компиляция не удалась по другим причинам (я опубликую дополнительный вопрос). user492922 04.05.2011

android-ndk

Ответы

Ответ 1 · рейтинг 9 · Jared Burrows

Во-первых, убедитесь, что у вас есть NDK:

http://developer.android.com/tools/sdk/ndk/index.html

Вот самый простой способ скомпилировать двоичный файл C для вашего телефона:

http://www.kandroid.org/ndk/docs/STANDALONE-TOOLCHAIN.html

Обычно $NDK(может отличаться) =

Линукс:

/home/<user>/android-ndk

Mac OS X:

/Пользователи/<user>/android-ndk

Оба: $HOME/android-ndk

В терминале:

# create tool-chain - one line
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-3 --install-dir=/tmp/my-android-toolchain

# add to terminal PATH variable
export PATH=/tmp/my-android-toolchain/bin:$PATH

# make alias CC be the new gcc binary
export CC=arm-linux-androideabi-gcc

# compile your C code(I tried hello world)
$CC -o foo.o -c foo.c

# push binary to phone
adb push foo.o /data/local/tmp

# execute binary
adb /data/local/tmp/foo.o

Пожалуйста, дайте мне знать, если я могу помочь!

С уважением,

Ответ 2 · рейтинг 4 · onlyxool

Вам нужно установить папку проекта следующим образом:

project_root

|__ jni/ (включая Android.mk и код C/C++)

|__ другой_каталог

Каталог jni не может изменить имя. и запустите ndk-build в каталоге project_root.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы