Uso scons puedo configurar fácilmente mi incluyen rutas de acceso:¿Cómo se configura el sistema scons ruta de inclusión
env.Append(CPPPATH=['foo'])
Esto pasa la bandera
-Ifoo
a GCC
Sin embargo estoy tratando para compilar con muchas advertencias habilitadas. En particular con
env.Append(CPPFLAGS=['-Werror', '-Wall', '-Wextra'])
el que muere horriblemente en cierto impulso incluye ... puedo arreglar esto añadiendo el impulso incluye al sistema de ruta de inclusión en lugar de la ruta de inclusión como golosinas gcc sistema incluye de manera diferente.
Así que lo que necesita para obtener pasó a gcc en lugar de -Ifoo es
-isystem foo
supongo que podría hacer esto con la variable CPPFLAGS, pero me preguntaba si había una solución mejor integrada en scons.
Gracias por la confirmación de lo que esperaba (pero esperaba que fuera incorrecto) –
Buena respuesta, pero en realidad, creo que es bueno que los incluidos estén excluidos de la cadena de dependencia ya que ralentizarían todo el proceso de compilación sin ganancia real Hay muchos encabezados de Boost que probablemente no cambien (y cuando lo hagan, lo sabrán y pueden decidir limpiarlo todo). – ereOn
De hecho, excluir los encabezados de "solo lectura" es una excelente manera de acelerar su compilación. Una buena práctica es asegurarse de que la versión de la biblioteca sea parte de su ruta de directorio (es decir, /foo/bar/boost/1.38/include). De esta forma, el número de versión de refuerzo aparece en las líneas de comando de compilación. Dado que SCons incluye la línea de comando en su firma, cualquier actualización de impulso aterrizaría en un directorio diferente, invalidando así cualquier producto de compilación existente. Esto hace que un caché de compilación sea mucho más robusto, especialmente para equipos grandes. – BenG