BOOST_PP_ITERATE () risultato in “No such file or directory”
-
26-09-2019 - |
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?
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
.