Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Recopilación cruzada de Freetype 2.5.3 para Android

Estoy tratando de cross-compiler Freetype 2.5.3, por lo que podría utilizarlo con mi Android NDK Opengl ES 2 proyecto, pero no estoy seguro de cómo hacerlo. Estoy usando Cygwin en Windows. Ya busqué y leí muchas cosas sobre él, pero todavía necesito ayuda.

He exportado algunas banderas en cygwin:

$ export NDK_TOOLCHAIN=/cygdrive/d/Development/Android/ndk-standalone-15 $ export PATH="$NDK_TOOLCHAIN/bin/:$PATH" $ export HOST=arm-linux-androideabi $ export CC=$HOST-gcc $ export CXX=$HOST-g++ $ export AR=$HOST-ar $ export LD=$HOST-ld $ export AS=$HOST-as $ export NM=$HOST-nm $ export STRIP=$HOST-strip $ export RANLIB=$HOST-ranlib $ export OBJDUMP=$HOST-objdump $ export CPPFLAGS="--sysroot=$NDK_TOOLCHAIN/sysroot -I$NDK_TOOLCHAIN/sysroot/usr/include -I$NDK_TOOLCHAIN/include" $ export LDFLAGS="-L$NDK_TOOLCHAIN/sysroot/usr/lib -L$NDK_TOOLCHAIN/lib" 

Y luego traté de cross-compiler freetype:

 $ ./configure --with-sysroot=/cygdrive/d/Development/Android/ndk-standalone-15/sysroot --host=$HOST --prefix=/ft2tmp --build=$BUILD --without-zlib --with-png=no 

Pero tengo un error:

Sistema de construcción FreeType – detección automática del sistema

Se utilizan los siguientes ajustes:

Plataforma unix compilador
Arm-linux-androideabi-gcc directorio de configuración ./builds/unix reglas de configuración ./builds/unix/unix.mk

Si esto no corresponde a su sistema o configuración, por favor, elimine el archivo `config.mk 'de este directorio y lea el archivo INSTALL para obtener ayuda.

De lo contrario, simplemente escriba make' again to build the library, or hacer refdoc' para construir la referencia de la API (este último necesita python).

Cd construye / unix; / Bin / sh ./configure '–with-sysroot = / cygdrive / d / Desarrollo / Android / ndk-standalone-15 / sysroot' '–host = arm-linux-androideabi' '–prefix = / ft2tmp' '–build =' '–without-zlib' '–with-png = no' comprobando el tipo de sistema de compilación … x86_64-unknown-cygwin comprobando el tipo de sistema host … arm-unknown-linux-androideabi Arm-linux-androideabi-gcc … arm-linux-androideabi-gcc verificando si el compilador C funciona … no configure: error: en /cygdrive/d/Development/tmp/freetype2/builds/unix': configure: error: C compiler cannot create executables See config.log 'para más detalles builds / unix / detect.mk: 86: la receta para' setup 'de destino falló make: * [setup] Error 77

Algunos del archivo config.log:

Gcc versión 4.8 (GCC) configure: 2925: $? = 0 configure: 2914: arm-linux-androideabi-gcc -V> y 5 arm-linux-androideabi-gcc.exe: error: opción de línea de comandos no reconocida '-V' arm-linux-androideabi-gcc.exe: error fatal: No se terminó la compilación de archivos de entrada. Configure: 2925: $? = 1 configure: 2914: arm-linux-androideabi-gcc -qversion> y 5 arm-linux-androideabi-gcc.exe: error: opción de línea de comandos no reconocida '-qversion' arm-linux-androideabi-gcc.exe: error fatal: No se terminó la compilación de archivos de entrada. Configure: 2925: $? = 1 configure: 2945: comprobando si el compilador C funciona configure: 2967: arm-linux-androideabi-gcc –sysroot = / cygdrive / d / Desarrollo / Android / ndk-standalone-15 // sysroot -I / cygdrive / d / Desarrollo / Android / ndk-standalone-15 // sysroot / usr / include -I / cygdrive / d / Desarrollo / Android / ndk-standalone-15 // incluye -L / cygdrive / d / Desarrollo / Android / ndk-standalone -15 // sysroot / usr / lib -L / cygdrive / d / Desarrollo / Android / ndk-standalone-15 // lib conftest.c> y 5 d: / desarrollo / android / ndk-standalone-15 / bin / .. /lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld.exe: error: no se puede abrir crtbegin_dynamic.o: No existe tal archivo o directorio D: / desarrollo / android / ndk-standalone-15 / bin /../ lib / gcc / brazo-linux-androideabi / 4.8 /../../../../ arm-linux-androideabi / bin / Ld.exe: error: no se puede abrir crtend_android.o: No existe tal archivo o directorio d: / development / android / ndk-standalone-15 / bin /../ lib / gcc / arm-linux-androideabi / 4.8 /../ ../../../arm-linux-androideabi/bin/ld.exe: error: no se puede encontrar -lc d: / development / androi D / ndk-standalone-15 / bin /../ lib / gcc / arm-linux-androideabi / 4.8 /../../../../ arm-linux-androideabi / bin / ld.exe: error : No puede encontrar -ldl collect2.exe: error: ld devuelto 1 exit status configure: 2971: $? = 1 configure: 3009: resultado: no configure: failed

Así que mi pregunta es ¿cómo debo hacer esto correctamente?

EDITAR:

Utilicé unset en CPPFLAGS y LDFLAGS y usé ./configure con –with-sysroot flag, y ahora está haciendo bien. El siguiente problema es que cuando uso

 make 

Obtuve el siguiente error:

$ Make ./builds/unix/libtool –mode = compilar arm-linux-androideabi-gcc -pedantic -ansi -I / cygdrive / d / Desarrollo / tmp / freetype2 / objs -I./builds/unix -I / cygdrive / D / Desarrollo / tmp / freetype2 / include -c -Wall -g -O2 -DFT_CONFIG_OPTION_SYSTEM_ZLIB -DFT_CONFIG_CONFIG_H = "" -DFT2_BUILD_LIBRARY -DFT_CONFIG_MODULES_H = "" -o /cygdrive/d/Development/tmp/freetype2/objs/ftsystem.lo /cygdrive/d/Development/tmp/freetype2/src/base/ftsystem.c libtool: compile: arm-linux-androideabi-gcc -pedantic -ansi -I / cygdrive / d / Desarrollo / tmp / freetype2 / objs -I. / Builds / unix -I / cygdrive / d / Desarrollo / tmp / freetype2 / include -c -Wall -g -O2 -DFT_CONFIG_OPTION_SYSTEM_ZLIB "-DFT_CONFIG_CONFIG_H =" -DFT2_BUILD_LIBRARY "-DFT_CONFIG_MODULES_H =" / cygdrive / d / Desarrollo / tmp / freetype2 /src/base/ftsystem.c -fPIC -DPIC -o /cygdrive/d/Development/tmp/freetype2/objs/.libs/ftsystem.o arm-linux-androideabi-gcc.exe: error: / cygdrive / d / Desarrollo / tmp / freetype2 / src / base / ftsystem.c: Ningún archivo o directorio arm-linux-androideabi-gcc.exe: f Error atal: no se terminó la compilación de archivos de entrada. /cygdrive/d/Development/tmp/freetype2/builds/freetype.mk:207: receta para el objetivo '/cygdrive/d/Development/tmp/freetype2/objs/ftsystem.lo' falló make: * [/ cygdrive / d / Desarrollo / tmp / freetype2 / objs / ftsystem.lo] Error 1

  • .NET Framework en Android
  • ReactNative construir para Android sólo se congela en el último paso
  • 4 Solutions collect form web for “Recopilación cruzada de Freetype 2.5.3 para Android”

    Tienes que configurar la ruta de estilo Windows proporcionando donde se encuentra freetype2. Aquí está cómo incluir en su trayectoria del ambiente de las ventanas las bibliotecas y los archivos que usted está utilizando para su desarrollo en androide . Lo mismo que debes hacer para el freetype2 .

    Puede resultar útil comprobar estas referencias:

    • Configuración de compilación cruzada de Android NDK (libpng y freetype)
    • Programación / instalación de OpenGL / Android NDK
    • Configuración de OpenGL ES * nativo en plataformas Android *
    • Llamando a OpenGL desde C en Android, Utilizando el NDK

    Como probablemente observará, la mayoría de los mejores materiales disponibles para desarrollar aplicaciones de Android están en Linux:

    Introduzca aquí la descripción de la imagen

    En caso de que sea realmente serio sobre el desarrollo de Android, valdría la pena considerar mover su desarrollo a una plataforma Linux.

    También debe tener un vistazo en el OpenGL Getting Started , que ofrece varios tutoriales sobre cómo trabajar con OpenGL en Linux , Windows y MacOS. Tomar un enfoque paso a paso suave es más productivo para crecer con éxito sus habilidades de desarrollo OpenGL.

    Cuando se trata de recopilación cruzada de la biblioteca que están escritos en C, requerimos NDK. Sin embargo, la compilación de este tipo de biblioteca en las ventanas es muy difícil y, a veces atascado. Le aconsejo que pruebe la compilación en Linux. Definitivamente se compilará

    NDK para Windows no depende de Cygwin, y peor: no reconoce /cygdrive/... caminos. Intente usar D:/Development/tmp/freetype2 .

    Primero, prepare una cadena de herramientas NDK independiente. Consulte https://stackoverflow.com/a/24978903/192373 . He utilizado los siguientes parámetros:

     bash-3.1$ d:/dev/Android/ndk/build/tools/make-standalone-toolchain.sh --platform=android-14 --toolchain=arm-linux-androideabi-4.8 --system=windows-x86_64 --arch=armv7a 

    A continuación, asegúrese de que tiene working /usr/bin/gcc .

     bash-3.1$ ./configure --host=arm-linux-androideabi --prefix=d:/Dev/Android/standalone-toolchain-armv7a-android-17 --without-zlib --with-png=no 

    Por último, corro make y veo

      Directory of d:\dev\freetype-2.5.3\objs\.libs 27/07/2014 10:43 3,462,596 libfreetype.a 27/07/2014 10:43 960 libfreetype.la 27/07/2014 10:43 961 libfreetype.lai 27/07/2014 10:43 2,320,272 libfreetype.so 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.