Библиотека компиляции для Android NDK - PullRequest
1 голос
/ 13 сентября 2011

У меня есть библиотека на c / c ++. Я успешно использовал его в нескольких программах на С ++.

Я хочу проверить, компилируется ли он на Android, и какого размера он будет и т. Д.
Можно ли как-нибудь скомпилировать эту библиотеку в файл .so, не имея всего проекта Android Java? Я ничего не знаю о разработке Android, но у меня есть друг, который хочет использовать мою библиотеку. Могу ли я просто предоставить ему скомпилированный файл .so?
Каждый найденный ресурс говорит, что его нужно скомпилировать из папки JNI в проекте Android.

Ответы [ 2 ]

3 голосов
/ 15 сентября 2011

Я обнаружил, что для использования сценария build-ndk мне не нужен настоящий проект. Я создал папку project, в которой ничего нет, кроме другой папки jni, и поместил все мои источники в эту папку. Затем я создал файл Android.mk и запустил скрипт, как описано в документации ndk.

2 голосов
/ 13 сентября 2011

Для этого вам понадобится Android Native Development Kit (NDK) http://developer.android.com/sdk/ndk/index.html и компилятор GCC.

Затем вы можете создать Make-файл с параметрами, как показано ниже (спасибо ViTo Brothers Apoyan ), и создать свою общую библиотеку.

GCC := C:\Tools\ndk-toolchain\ndk-standalone\bin\arm-linux-androideabi-gcc.exe
GPP := C:\Tools\ndk-toolchain\ndk-standalone\bin\arm-linux-androideabi-g++.exe
AR  := C:\Tools\ndk-toolchain\ndk-standalone\bin\arm-linux-androideabi-ar.exe

OPTIONS  :=\
-fpic \
-ffunction-sections \
-funwind-tables  \
-fstack-protector \
-D__ARM_ARCH_5__ \
-D__ARM_ARCH_5T__ \
-D__ARM_ARCH_5E__ \
-D__ARM_ARCH_5TE__ \
-Wno-psabi \
-march=armv5te \
-mtune=xscale \
-msoft-float \
-mthumb \
-Os \
-fomit-frame-pointer \
-fno-strict-aliasing \
-finline-limit=64 \
-DANDROID \
-Wa, \
-O2 \
-DNDEBUG \
-g \

default: all


all: obj
    $(AR) r mysharedlibrary.so *.o

obj:
    $(GCC) $(OPTIONS) -c *.c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...