Jak uniemożliwić cytowanemu włączenie wyszukiwania w katalogu bieżącego pliku źródłowego?

gcc zapewnia-I- opcja, dla której-I katalogi poprzedzające-I- są wyszukiwane w cudzysłowie zawiera (#include "foo.h"), i-I katalogi po-I- są wyszukiwane w nawiasie zawiera (#include <foo.h>), jak również po innych dla cytowanych obejmuje.

-I- ma jeszcze inny bardzo ważny efekt. Usuwa katalog pliku źródłowego, który#include jest z domyślnej ścieżki wyszukiwania. Normalnie cytowany include zawsze przeszukuje katalog pliku źródłowego i przeszukuje goprzed każdy-I lub inne katalogi.-I- w związku z tym pozwala określić dokładnie, gdzie należy przejść do cytowanych plików dołączanych w żądanej kolejności, usuwając tę ​​domyślną ścieżkę, która w innym przypadku miałaby priorytet.

Więc brzmi to tak, jakbym odpowiedział na moje pytanie, tak? Nie. Kiedy używam-I- teraz dostaję ten nastygram:

cc1: note: obsolete option -I- used, please use -iquote instead

Problemem jest-iquote robinie usuń bieżący katalog ze ścieżki wyszukiwania. Nadal jest zawsze wyszukiwany najpierw, bez względu na to, do czego dostarczam-iquote.

Pytanie brzmi: jak uzyskać taki sam efekt jak-I-, bez używania-I-, który został zdeprecjonowany i ostatecznie zniknie?

Opracowanie:

Załóżmy, że pliki są ułożone w następujący sposób:

srcdir/
    configure
    file1.c
    file2.c
    config.h

builddir/
    Makefile
    file1.o
    file2.o
    config.h
    libpudding.a

Z różnych powodów nie możemy usunąćconfig.h zsrcdir (wpłynie to na proces kompilacji na innych platformach). Chcemy jednak włączyćconfig.h zbuilddir zamiastzconf.h wsrcdir.

Można to osiągnąć za pomocą GCC-I- flaga, ale wydaje się to niemożliwe.

Zaktualizowane pytanie:

Ok, wygląda na to, że programiści GNU CC przestarzali-I-, ale nie zapewnił alternatywnego sposobu osiągnięcia swojej funkcjonalności. Tak więc moje zaktualizowane pytanie brzmi: jaki jest najbardziej skuteczny sposób, aby zwrócić uwagę deweloperów, aby było duże prawdopodobieństwo, że-I- jest niezrejestrowany (co najchętniej bym znalazł, ponieważ jest to dość elegancki sposób obsługi wyszukiwania, znacznie bardziej i znacznie mniej brzydki niż -iquotexxx), lub że istnieje jakiś sposób na usunięcie bieżącego katalogu z cudzysłowu to ścieżka wyszukiwania?

questionAnswers(1)

yourAnswerToTheQuestion