Uso gcc (ejecutándose como g++
) y GNU make. Uso gcc para precompilar un archivo de encabezado precompiled.h
, creando precompiled.h.gch
; la línea siguiente en un Makefile hace:Creando varios archivos de encabezado precompilados utilizando GNU make
# MYCCFLAGS is a list of command-line parameters, e.g. -g -O2 -DNDEBUG
precompiled.h.gch: precompiled.h
g++ $(MYCCFLAGS) -c $< -o [email protected]
Todo fue bien hasta que tuve que correr g++
con diferentes parámetros de línea de comandos. En este caso, aunque existe precompiled.h.gch
, no se puede usar y la compilación será mucho más lenta. En la documentación gcc He leído que para manejar esta situación, tengo que hacer un directorio llamado precompiled.h.gch
y poner los archivos de encabezado precompilados allí, un archivo para cada conjunto de g++
parámetros de línea de comandos.
Así que ahora me pregunto cómo debería cambiar mi Makefile para contar g++
para crear los GCH-archivos de esta manera. Tal vez pueda ejecutar g++
solo para probar si puede usar cualquier archivo existente en el directorio precompiled.h.gch
, y, de no ser así, generar un nuevo encabezado precompilado con un nombre de archivo único.
¿Tiene gcc compatibilidad para realizar dicha prueba?
Tal vez pueda implementar lo que quiero de otra manera?
'-Winvalid-pch' le dará una advertencia. Usado con '-Werror' detendrá la compilación si gcc ve un .gch inválido. – bobbogo
@bobbogo ¡Gracias, esto es exactamente lo que necesito! Me ahorrará algunos problemas. – anatolyg