Domanda

Sto imparando la libreria Boost preprocessore (perché ho bisogno di usarlo), e ho voluto provare il meccanismo di file di iterazione. Ho creato un progetto minimo con a.cpp e b.hpp. Quello che sto cercando di fare è tra cui molti b.hpp momento tramite il pp spinta:

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

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

Quando provo a compilare (con -E per vedere il risultato del preprocessore):

g++ -E a.cpp > pp_result

ho ottenuto questo errore:

  

Nel file incluso da a.cpp:   /usr/local/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:47:37: errore: b.hpp: No such file or directory

b.hpp si trova nella stessa directory, non riesco a vedere quello che sto dooing sbagliato. Sembra che il b.hpp g ricerche ++ nella stessa directory di forward1.hpp, ma seguendo la documentazione spinta mio codice dovrebbe funzionare (la mia versione spinta è 1.44).

Qualcuno ha sperimentato lo stesso problema?

È stato utile?

Soluzione

Sì, è necessario aggiungere -I. alla riga di comando al fine di farlo funzionare. Questo aggiunge la directory iniziato gcc per l'inclusione percorso di ricerca, che permette al compilatore di trovare il file b.hpp.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top