c gcc header include c-preprocessor

¿Hay alguna manera de pedirle a gcc que trate#include<> como#include ""?



header c-preprocessor (2)

La opción -I- podría ayudarte. Desde la página man de gcc:

-I- Split the include path. Any directories specified with -I options before -I- are searched only for headers requested with "#include "file""; they are not searched for "#include <file>". If additional directories are specified with -I options after the -I-, those directories are searched for all #include directives.

¿Hay un indicador de compilador o preprocesador que obligue a gcc a tratar #include <xh> como si fuera #include "xh" ? Tengo un montón de código generado que usa #include <> para los archivos en el directorio actual, y gcc informa que no hay tal archivo o directorio para estos archivos. Estoy buscando una solución alternativa que no implique la edición del código.

EDITAR: -I. no lo hace Digamos que tengo los siguientes archivos:

foo / foo.h:

#include <foo2.h>

foo / foo2.h:

#define FOO 12345

xyz / xyz.c

#include <stdio.h> #include "foo/foo2.h" int main(void) { printf("FOO is %d/n", FOO); return 0; }

Si, dentro del directorio xyz , compilo con gcc -o xyz I.. xyz.c , la compilación falla:

In file included from xyz.c:2: ../foo/foo.h:1:18: error: foo2.h: No such file or directory xyz.c: In function ‘main’: xyz.c:6: error: ‘FOO’ undeclared (first use in this function) xyz.c:6: error: (Each undeclared identifier is reported only once xyz.c:6: error: for each function it appears in.)

Añadiendo -I. no cambia nada

Pero, si cambio foo / foo.h a:

#include "foo2.h"

Entonces la compilación funciona. Sé que podría agregar -I../foo a mi línea de comandos, pero estaba buscando una forma más genérica para tratar #include <> como #include "" . ¿Existe uno?


Sí, puedes pasar el interruptor -I . al compilador para agregar el directorio actual a la ruta de búsqueda de inclusión.