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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top