Question

Comment puis-je arrêter automake d'ajouter -I. à ma ligne de compilation?

Il semble objets automake ou libtool ont toujours une commande de compilation similaire à:

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

Le problème est que j'ai deux fichiers d'en-tête avec le même nom ....

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

Chaque tête a une classe nommée en-tête, bien que chacun d'eux est dans un espace de noms différent. Alors, quand je construis dans ./proj/thisdir, « -I. » et sera inclus je ne peux pas l'en-tête dans ./proj/otherdir

Je ne sais pas comment se débarrasser de cette première « -I. » qui apparaît.

Les conseils?

Merci Chenz

Était-ce utile?

La solution

tout ce que vous devez faire est de mettre dans le Makefile.am

DEFAULT_INCLUDES =

et puis tout est bien dans le monde.

Chenz

Autres conseils

Si votre API inclut différents en-têtes quand j'écris

#include <Header.h>

qui fait que l'API de confusion et d'erreurs.

Pourquoi ne pas définir votre API comme

#include <thisdir/Header.h>

et

#include <otherdir/Header.h>

Ensuite, vous pouvez même se référer à deux têtes dans le même fichier source si nécessaire. Et vous savez que la lecture de la ligne comprennent ce qu'il comprend en fait.

Regardez dans le configure.ac ou configure.in pour votre application, devrait être là-dedans

Il ne se débarrasse pas de -I, mais vous pouvez mettre des chemins relatifs dans vos directives #include:.

#include "../otherdir/Header.h"
#include "../thisdir/Header.h"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top