2012-02-06 13 views
5

Mam 2 projekty:

1 - Android Native projektu
2 - C/C++ projektu

buduję moje pliki biblioteki współdzielone (.so) w projekt C/C++ i chcesz użyć tych plików .so w projekcie Android Native. Nie chcę kopiować i wklejać tych plików bibliotecznych z jednego projektu do drugiego.Android rodzimy projekt referowanie wspólną bibliotekę C++ projektu biblioteka

Po pierwsze, czy można używać tych plików .so z mojego natywnego projektu Android za pomocą jakiegoś odniesienia itp. Do projektu biblioteki C++?

Czy łatwiej byłoby znaleźć sposób automatycznego kopiowania plików .so z projektu biblioteki C++ do macierzystego projektu systemu Android?

Odpowiedz

1

Cóż, najpierw musisz ponownie skompilować swoje biblioteki do ARM. Możesz użyć do tego funkcji "samodzielnego toolchain" ndk. W folderze ndk znajduje się dokument wyjaśniający więcej informacji (docs/STANDALONE-TOOLCHAIN.html). Musiałem użyć libexpat w projekcie więc bita plik bash do kompilacji Expat użyciu autonomicznego toolchain tak:

NDK_PATH=/android-ndk-r7 
NDK_GCC=${NDK_PATH}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc 

export CC="${NDK_GCC} --sysroot=${NDK_PATH}/platforms/android-8/arch-arm" 
export CFLAGS='-mthumb' 
export LDFLAGS='-Wl,--fix-cortex-a8' 
./configure --host=arm-eabi 
make 

Następnie można skopiować tak, gdzie chcesz i odwoływać od Android.mk:

LOCAL_LDLIBS := \ 
-Lvendor/expat/sdk/lib/android \ 
-lexpat 

pamiętać, że wbudowany expat i powiązane go statycznie, więc nie trzeba się martwić o kopiowanie Powstały więc

Powiązane problemy