Red de conocimiento informático - Material del sitio web - Cómo usar CCache para acelerar la compilación de la versión de Android Cocos2d-x

Cómo usar CCache para acelerar la compilación de la versión de Android Cocos2d-x

CCache es la caché del compilador para C/C++. Cuando se vuelve a compilar la misma compilación, se detecta y la caché anterior acelera la compilación. Por lo tanto, podemos acelerar la compilación de la versión de Android Cocos2d-x mediante este método. Usando este enfoque, el tiempo de compilación de nuestro proyecto Cocos2d-x para Android se redujo de 10 minutos a 30 segundos cuando se compiló en una Macbook Pro Retina con una CPU i7.

Nota: Los siguientes pasos sólo se aplican a Mac OS X.

Instalar

Usamos homebrew:

brew

instalar --HEAD ccache

O instalar desde el código fuente :

git

clon /jrosdahl/ccache.git

cd

ccache

./autogen. sh

./configure

make

make

instalar

cp

/usr/local/bin/ccache /usr/bin/

Nota: la ruta de instalación predeterminada es /usr/local/bin, necesitamos copiar ccache a /usr/bin/; de lo contrario, ndk-build no puede encontrarlo e informará un error

Si el terminal informa un error que dice que no se puede encontrar el encabezado automático, esto significa que primero debemos instalar automake:

brew

instalar automake

p>

Pero si el terminal informa un error diciendo que no se puede encontrar brew, primero debemos instalar brew:

ruby

- e"$(curl

-fsSL

/Homebrew/homebrew/go/install)"

Asegúrese de que $PATH pueda identificar la ruta del ccache, ejecute el comando:

ccache

Si ve el mensaje de ayuda, felicidades, ¡la instalación se realizó correctamente!

Configurando el entorno de compilación en Android

Para usar ccache, debemos configurar las siguientes variables de entorno:

vim

~/. bash_profile

Agregue

las siguientes líneas:

exportar

USE_CCACHE=1

exportar

NDK_CCACHE=/usr/local/bin/ccache

Ejecute la línea de comando:

ccache

-M 10G

Este comando establecerá el tamaño de la caché en 10G. Por supuesto, si el espacio en el disco duro es lo suficientemente grande, también puedes configurarlo en 50G.

Luego, saltamos al directorio NDK. Si olvidas la ruta, puedes verificarla con el siguiente comando:

cuál

ndk-build<. /p >

Aquí está mi resultado:

//developer/android/ndk-r9b/ndk-build

Entonces mi NDK_ROOT es:

/developer/android/android-ndk-r9b

Abra el archivo: $NDK_ROOT/ build/core/default-build-commands.mk

Busque las siguientes secciones y agréguelas como sigue cccache:

ifneq

($(findstring ccc-analyzer,$(CC)),)

TARGET_ CC

= $ (CC)

else

TARGET_CC

= ccache $(TOOLCHAIN_PREFIX)gcc #Agregar soporte de ccache

endif

TARGET_CFLAGS

=

TARGET_CONLYFLAGS

=

ifneq

($(findstring c++-analyzer , $(CXX)),)

TARGET_CXX

= $(CXX)

más

TARGET_CXX

= ccache $(TOOLCHAIN_PREFIX)g++ #Agregar soporte para ccache

endif

TARGET_CXXFLAGS

= $(TARGET_ CFLAGS) - fno-exceptions -fno-exceptions - fno-exceptions -fno-exceptionsfno-exceptions -fno-rtti

Crea el juego cocos2d-x

Selecciona el directorio raíz de cocos2d-x y ejecuta:

python

build/android-build.py -p 10 cpp-tests

Crea una nueva ventana de terminal y ejecuta:

ccache

- s

Este comando imprimirá el estado de ccache, como se muestra a continuación:

cache

Directorio/Users/heliclei/.ccache

config primaria

/Users/heliclei/.ccache/ccache.conf

config secundaria

(solo lectura) /usr/local/etc/ccache. conf

cache

hit (directo) 13588

cache

hit (preprocesado) 11145

cache

falta 696

llamado

para

enlace 1

llamado

para

preprocesamiento14

preprocesador

error 1

no se puede

usar el encabezado precompilado 129

no

archivo de entrada 5

archivos

en caché 32222

tamaño de caché

5,4 GB

máximo

tamaño de caché 30,0 GB

Si el acierto de caché y el tamaño de caché son 0, significa que ccache no se está ejecutando y debemos volver a verificar la configuración.

Implementar en Xcode

Configurar el entorno ccache para Xcode (5.1) es un poco engorroso. Llamé a ccache pero no pareció mejorar la velocidad de compilación. Si tiene una buena solución a este problema, envíe un PR para este tutorial en github. Sin embargo, veamos cómo configurarlo:

Primero, agreguemos 2 macros personalizadas (macros definidas por el usuario) a las opciones de compilación de cocos2d_libs:

CC=$ (SOURCE_ROOT) /.../tools/xcode_ccache_wrapper

LDPLUSPLUS=$(DT_TOOLCHAIN_DIR)/usr/bin/clang++

Luego, necesitamos encontrar la ruta $(COCOS2dX_ROOT)/tools/ Crear un nuevo programa llamado xcode _ccache_wrapper script a continuación:

#! /bin/bash

exportar

CCACHE_CPP2=yes

exportar

CCACHE_LOGFILE=~/Desktop/ccache.log

exec

/usr/local/ bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchain/XcodeDefault.xctoolchain/usr/bin/clang -Qunused-arguments

"$@"

¡La configuración está completa y podemos compilar fácilmente en Xcode!

Abra ccache.log para ver el estado de funcionamiento de la caché.