Las personas han podido construir PCRE (o un subconjunto de) copiando los archivos de origen y creando Andriod.mk adecuado. Quiero hacer algo similar, pero usando una cadena de herramientas independiente de Android y simplemente usando su proceso de configuración y creación. He tenido éxito construyendo otras bibliotecas útiles usando el mismo flujo, pero estoy teniendo un problema con PCRE. En concreto, a finales de la marca de flujo que estoy recibiendo este error:Error de enlace para PCRE al utilizar la cadena de herramientas autónoma Android NDK
undefined reference to__dso_handle' .libs/pcre_stringpiece.o
Al hacer esto,
/bin/bash ./libtool --tag=CXX --mode=link arm-linux-androideabi-g++ -O2 -version-info 0:0:0 -o libpcrecpp.la -rpath /usr/local/lib pcrecpp.lo pcre_scanner.lo pcre_stringpiece.lo libpcre.la
libtool: link: arm-linux-androideabi-g++ -fPIC -DPIC -shared -nostdlib .libs/pcrecpp.o .libs/pcre_scanner.o .libs/pcre_stringpiece.o -Wl,-rpath -Wl,/home/corbin/applications/pcre-8.21/.libs ./.libs/libpcre.so -L/home/corbin/my-android-toolchain-mod/bin/../lib/gcc/arm-linux-androideabi/4.7.0 -L/home/corbin/my-android-toolchain-mod/bin/../lib/gcc -L/home/corbin/my-android-toolchain-mod/bin/../lib/gcc/arm-linux-androideabi/4.7.0/../../../../arm-linux-androideabi/lib -L/home/corbin/my-android-toolchain-mod/bin/../sysroot/usr/lib -lstdc++ -lm -lc -ldl -lgcc -O2 -Wl,-soname -Wl,libpcrecpp.so.0 -o .libs/libpcrecpp.so.0.0.0
.libs/pcrecpp.o: In function `_GLOBAL__sub_I_pcrecpp.cc':
pcrecpp.cc:(.text.startup+0x94): undefined reference to `__dso_handle'
.libs/pcre_stringpiece.o: In function `_GLOBAL__sub_I_pcre_stringpiece.cc':
pcre_stringpiece.cc:(.text.startup+0x40): undefined reference to `__dso_handle'
collect2: error: ld returned 1 exit status
make[1]: *** [libpcrecpp.la] Error 1
make[1]: Leaving directory `/home/corbin/applications/pcre-8.21'
Alguna idea de cuál es el problema y cuál es la solución? Leí varias cosas sobre problemas similares, pero en su mayoría fueron inútiles o no estaba claro si se relacionaban con el mismo problema.
Actualización 1: He encontrado que este problema no se produce cuando utilizo la cadena de herramientas autónoma por defecto. Solo ocurre cuando uso uno modificado como se describe aquí: http://specificimpulses.blogspot.com/2011/10/android-fortran-step-by-step-part-2.html Necesito usar ese para construir otras bibliotecas que incluyan fortran (y lo he hecho con éxito) y quiero usar la misma cadena de herramientas para todas las construcciones. Entonces, ¿necesito reconstruir la cadena de herramientas con algunas opciones diferentes?
Por favor, dame una pista sobre cómo resolver esto. O mejor, crea una cadena de herramientas independiente basada en el enlace que di y úsala para construir pcre. Vuelva a crear el error y descubra qué hacer para solucionar el problema. Creo que necesito reconstruir gcc con diferentes opciones para lograr esto, pero aún no estoy seguro de cómo. – corbin
Consulte esto http://stackoverflow.com/questions/8831227/how-to-build-or-where-to-get-an-android-ndk-stand-alone-toolchain-supporting-for – corbin