Как собрать из src в двоичный файл для Android

Я хочу использовать некоторые вызовы функций (команды), разработанные для Linux. Я могу использовать их, введя ключевые слова в adb (Android CML). Здесь я нашел некоторые работы, которые сделали некоторые люди.

wget (поскольку он не включен в большинство устройств Android)

Iperf

Но прочитав их методы или предложения, я могу только понять, что мне нужно использовать Android NDK и написать правильный makefile. Я понятия не имею о создании других исходных кодов (большинство из них на C/C++) для Linux (нужно только использовать команду make, упомянутую в их файле README). Официальный документ NDK предназначен для среды Java, в основном, для вызова C lib.

Есть ли какие-то HOWTO, курсы или предложения для этого. Спасибо!

Я скомпилировал программу с одним файлом cpp. Я пытаюсь скомпилировать альтернативную версию iperf https://github.com/tierney/iperf

Кажется, это относится к lib , некоторым файлам заголовков и нескольким файлам c. Мне не удалось скомпилировать, введя все файлы c нормально. Я что-то пропустил?


person user2174595    schedule 27.11.2013    source источник


Ответы (3)



да, вам нужен NDK, он предлагает компилятор C/C++ для Android.
В целом шаги одинаковы:

Конечно, это всего лишь обзор того, как это делается. Вы должны попробовать это, а затем задать конкретные вопросы, если у вас возникнут проблемы.

person Stephan    schedule 27.11.2013
comment
Добавьте конкретный случай. Пожалуйста, дайте мне несколько предложений. - person user2174595; 11.12.2013
comment
Для вашего iperf вы должны запустить скрипт configure с некоторыми аргументами. Например, ./configure --build=android-arm-eabi --sysroot=$NDK/platforms/android-18/arch-arm/ и так далее. Затем попробуйте скомпилировать, и если он не работает, проверьте, какие ошибки выдает вам make. - person Stephan; 11.12.2013

NDK в основном предназначен для расширения приложений Java, но вы можете загрузить NDK и создать из него автономную цепочку инструментов (см. ="nofollow">http://www.kandroid.org/ndk/docs/STANDALONE-TOOLCHAIN.html). Теперь у вас есть среда кросс-компиляции, которая очень похожа на стандартную среду разработки Linux.

person Alex Cohn    schedule 28.11.2013
comment
Добавьте конкретный случай. Пожалуйста, дайте мне несколько предложений. - person user2174595; 11.12.2013

Кроме того, для небольших исполняемых файлов и только для тестирования вы также можете выполнять кросс-компиляцию и статическое связывание с libc. Таким образом, вам не нужно беспокоиться о Bionic, что может быть потерей времени.

person jmlemetayer    schedule 03.12.2013
comment
Добавьте конкретный случай. Пожалуйста, дайте мне несколько предложений. - person user2174595; 11.12.2013
comment
Вы можете сделать что-то вроде что - person jmlemetayer; 11.12.2013