Компиляция кода C (netcat) в собственный исполняемый файл Android - PullRequest
3 голосов
/ 29 мая 2011

Я пишу сценарий bash, который использует Netcat для обслуживания кадрового буфера по сетевому соединению, но сначала мне нужно скомпилировать его в собственный исполняемый файл. Я даже заставил этот скрипт работать на машине с Ubuntu, где по умолчанию установлен netcat.

Я нашел это https://github.com/android/platform_external_netcat, но не имею никакого опыта в NDK вообще. Это, очевидно, не использует JNI или Java вообще, поэтому подход по умолчанию для создания приложений Android никуда меня не приведет.

Итак, вопрос в том. Как мне получить исполняемый файл из этого исходного кода?

Ответы [ 2 ]

3 голосов
/ 28 марта 2014

Если кто-то еще хочет знать, это из документации NDK:

SYSROOT=$NDK/platforms/android-<level>/arch-<arch>/
export CC="$NDK/toolchains/<name>/prebuilt/<system>/bin/<prefix>gcc --sysroot=$SYSROOT"
$CC -o foo.o -c foo.c

Более конкретно, для netcat от https://github.com/android/platform_external_netcat

SYSROOT=$NDK/platforms/android-19/arch-arm
CC=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT
$CC -DANDROID -c -o atomicio.o atomicio.c
$CC -DANDROID -c -o netcat.o netcat.c
$CC -o netcat atomicio.o netcat.o

Замените пути из SYSROOT и CC соответствующим образом.

1 голос
/ 29 мая 2011

Посмотрите в Android SDK под docs / STANDALONE-TOOLCHAIN.html, он описывает, как использовать ndk в качестве автономного компилятора, который может создавать двоичные файлы для рук.

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