Boost_pp_iterate () resultam em "nenhum arquivo ou diretório"
-
26-09-2019 - |
Pergunta
Estou aprendendo a biblioteca de pré -processador Boost (porque preciso usá -la) e queria experimentar o mecanismo de iteração de arquivos. Eu configurei um projeto mínimo com A.CPP e B.HPP. O que estou tentando fazer é incluir muitas vezes B.HPP através do Boost PP:
#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 tento compilar (com -e para ver o resultado do pré -processador):
g++ -E a.cpp > pp_result
Eu recebi este erro:
No arquivo incluído em A.CPP: /usr/local/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:47:37: Erro: B.HPP: Nenhum arquivo ou diretório
B.HPP está no mesmo diretório, não consigo ver o que estou fazendo errado. Parece que o G ++ pesquisa B.HPP no mesmo diretório que Forward1.hpp, mas após a documentação do Boost, meu código deve funcionar (minha versão de impulso é 1.44).
Alguém experimentou o mesmo problema?
Solução
Sim, você precisa adicionar -I.
para a linha de comando para fazê -la funcionar. Isso adiciona o diretório em que você iniciou o GCC ao caminho de pesquisa de inclusão, permitindo que o compilador encontre o arquivo b.hpp
.