Question

J'apprends la bibliothèque de préprocesseur boost (parce que je dois l'utiliser), et je voulais essayer le mécanisme d'itération de fichier. J'ai mis en place un projet avec un minimum a.cpp et b.hpp. Ce que je suis en train de faire est beaucoup, y compris b.hpp de temps via pp boost:

#include <boost/preprocessor/iteration/iterate.hpp>

#define BOOST_PP_ITERATION_LIMITS (0, 5)
#define BOOST_PP_FILENAME_1 "b.hpp"
#include BOOST_PP_ITERATE()

Quand je tente de compiler (avec -E pour voir le résultat de préprocesseur):

g++ -E a.cpp > pp_result

Je suis cette erreur:

  

Dans le fichier inclus à partir a.cpp:   /usr/local/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:47:37: Erreur: b.hpp: Aucun fichier ou répertoire

b.hpp est dans le même répertoire, je ne vois pas ce que je suis dooing mal. Il semble que le g ++ recherches b.hpp dans le même répertoire que forward1.hpp, mais après la documentation boost mon code devrait fonctionner (ma version boost est 1,44).

Quelqu'un a connu le même problème?

Était-ce utile?

La solution

Oui, vous devez ajouter -I. à la ligne de commande afin de le faire fonctionner. Cela ajoute le répertoire que vous a commencé gcc dans l'include_path recherche, ce qui permet au compilateur de trouver le fichier b.hpp.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top