¿Incluir archivos de encabezado usando la opción de línea de comando?

¿Es posible especificar archivos de cabecera adicionales para incluir desde la línea de comandos (usando GCC 4 / C ++)?

¿O hay alguna otra manera de incluir archivos, excepto con #include?

Antecedentes: estoy tratando de comstackr una gran base de código en mi propia PC. El código generalmente se comstack en un clúster, con un sistema de comstackción complicado (SoftRelTools anyone?), Que se entrelaza con el sistema operativo, de modo que es virtualmente imposible instalarlo en otro lugar (literalmente cientos de makefiles y scripts de shell, y hard rutas codificadas a unidades de red). Sin embargo, el código real es bastante directo y comstack bien, PERO falta un gran número de inclusiones (principalmente a la ” include ” e ” include “). Supongo que el sistema de comstackción se encarga de esto por lo general, pero tengo que pasar por el código y agregar las inclusiones manualmente, lo cual prefiero evitar.

Encontré la opción -include. ¿Esto es lo que quieres?

-include archivo

Procesar archivo como si el archivo “#include” “” apareciera como la primera línea del archivo fuente principal. Sin embargo, el primer directorio de búsqueda de archivos es el directorio de trabajo del preprocesador en lugar del directorio que contiene el archivo fuente principal. Si no se encuentra allí, se busca en el rest de la cadena de búsqueda “#include” … “” como es normal.

Si se proporcionan varias opciones de inclusión, los archivos se incluyen en el orden en que aparecen en la línea de comandos.

Del manual de gcc:

-include archivo

Procesar archivo como si el archivo ” #include "file" ” apareciera como la primera línea del archivo fuente principal. Sin embargo, el primer directorio de búsqueda de archivos es el directorio de trabajo del preprocesador en lugar del directorio que contiene el archivo fuente principal. Si no se encuentra allí, se busca en el rest de la cadena de búsqueda ” #include "..." ” como es normal.

Si se proporcionan varias opciones de inclusión, los archivos se incluyen en el orden en que aparecen en la línea de comandos.

De acuerdo con la documentación de gcc, el cambio de línea de comando “-include file” haría el trabajo.