2012-02-06 21 views
5

tengo 2 proyectos:

1 - Proyecto nativo Android
2 - C/C Proyecto ++

estoy construyendo mis archivos de biblioteca compartida (.so) en un proyecto de C/C++ y quiere usar esos archivos .so en el proyecto nativo de Android. No quiero copiar y pegar estos archivos de biblioteca de un proyecto a otro.proyecto nativa de Android que hacen referencia a la biblioteca compartida de C++ proyecto de biblioteca

En primer lugar, ¿es posible usar esos archivos .so de mi proyecto nativo de Android usando alguna referencia, etc. al proyecto de la biblioteca C++?

¿Sería más fácil encontrar una forma de copiar automáticamente los archivos .so del proyecto de biblioteca C++ al proyecto nativo de Android?

Respuesta

1

Bueno, primero tendrá que volver a compilar sus libs para ARM. Puede usar la funcionalidad de la cadena de herramientas independiente de ndk para eso. Hay un documento que explica más sobre esto en el directorio ndk (docs/STANDALONE-TOOLCHAIN.html). Necesitaba usar libexpat en un proyecto así que nos prepararon rápidamente un archivo bash para compilar expatriado usando la cadena de herramientas independiente de este modo:

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 

A continuación, puede copiar el modo donde quiera y hacer referencia a ella desde Android.mk:

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

Nota que he construido de expatriados y vinculado estáticamente, así que no tiene que preocuparse acerca de la copia de la que resulta tan

Cuestiones relacionadas