2010-04-22 14 views
10

Tengo que compilar varias versiones de una aplicación escrita en C++ y creo que usar ccache para acelerar el proceso.¿Cómo usar ccache selectivamente?

ccache howtos tienen ejemplos que sugieren crear enlaces simbólicos llamados gcc, g ++ etc. y asegúrese de que aparezcan en PATH antes de los binarios originales de gcc, por lo que se usa ccache en su lugar.

Hasta aquí todo bien, pero me gustaría usar ccache solo al compilar esta aplicación en particular, no siempre.

Por supuesto, puedo escribir un script de shell que intentará crear estos enlaces simbólicos cada vez que quiera compilar la aplicación y los eliminará cuando se compile la aplicación. Pero esto me parece un abuso del sistema de archivos.

¿Hay mejores formas de utilizar ccache selectivamente, no siempre?

Para la compilación de un solo archivo de código fuente, podía simplemente llamar ccache en lugar de gcc y terminar, pero tengo que lidiar con una aplicación compleja que utiliza un sistema de compilación automático para múltiples archivos de código fuente.

Respuesta

3

¿Qué sistema operativo? Linux? La mayoría de las versiones empaquetadas de ccache ya pusieron esos enlaces simbólicos en un directorio, por ejemplo, en mi máquina Fedora que viven en/usr/lib64/ccache.

por lo que podría simplemente hacer

PATH=/usr/lib64/ccache:${PATH} make 

cuando se quiere construir con ccache.

La mayoría de los paquetes también instalan un archivo en /etc/profile.d/ que habilita automáticamente ccache, agregándolo a la RUTA como se indicó anteriormente.

Si ese es el caso en su sistema, simplemente configure CCACHE_DISABLE=1 (consulte man ccache para obtener más información) en su entorno para desactivar ccache - ccache seguirá ejecutándose, pero simplemente llamará al compilador real.

+0

La configuración de CCACHE_DISABLE parece estar bien, gracias. –

1

La alternativa para crear enlaces simbólicos es utilizar explícitamente ccache gcc como el compilador de C y ccache g++ como el compilador de C++. Por ejemplo, si su Makefile usa las variables CC y CXX para especificar los compiladores, puede compilar con make CC="ccache gcc" CXX="ccache g++" o configurarlo en el momento de la configuración (./configure CC="ccache gcc" CXX="ccache g++").

9

Para ccache de derivación simplemente:

export CCACHE_DISABLE=1 

Para más información:

man ccache 

...

 If you set the environment variable CCACHE_DISABLE then ccache will just call the real 
     compiler, bypassing the cache completely. 

...

Cuestiones relacionadas