Comment puis-je arrêter automake d'ajouter -I. à ma ligne de compilation?
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
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"