Frage

Wie verhindere ich, auto von -I hinzufügen. In meiner Kompilierung Linie?

Es scheint, auto oder libtool Objekte haben immer einen Compiler-Befehl ähnlich:

g++ -DHAVE_CONFIG_H -I. -I./proj/otherdir -o myprog.o myprog.c

Das Problem ist, dass ich zwei Header-Dateien mit dem gleichen Namen haben ....

./proj/otherdir/Header.h
./proj/thisdir/Header.h

Jeder Header hat eine Klasse mit dem Namen-Header, obwohl jeder in einem anderen Namespace ist. Also, wenn ich in ./proj/thisdir bin der Aufbau, die „-I.“ wird aufgenommen und ich kann nicht an den Header in ./proj/otherdir

erhalten

Ich weiß nicht, wie diese erst loswerden „-I.“ das angezeigt wird.

Für Hinweise?

Danke Chenz

War es hilfreich?

Lösung

alles, was Sie tun müssen, ist in der Makefile.am gesetzt

DEFAULT_INCLUDES =

und dann ist alles gut in der Welt.

Chenz

Andere Tipps

Wenn Ihr API enthält verschiedene Header, wenn ich schreibe

#include <Header.h>

, die dieses API verwirrend und fehleranfällig macht.

Warum definieren nicht Ihre API wie

#include <thisdir/Header.h>

und

#include <otherdir/Header.h>

Dann könnte man sogar auf beiden Header in derselben Quelldatei verweisen, falls erforderlich. Und Sie würden wissen nur von der Linie gehören zu lesen, was es enthält tatsächlich.

Suchen Sie in der configure.ac oder configure.in für Ihre App sollte drin sein

Es wird nicht los -I, aber Sie können relative Pfade in Ihren #include Richtlinien setzen.

#include "../otherdir/Header.h"
#include "../thisdir/Header.h"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top