2010-09-29 1 views
1

Я изучаю библиотеку препроцессора boost (потому что мне нужно ее использовать), и я хотел попробовать механизм итерации файла. Я установил минимальный проект с a.cpp и b.hpp. То, что я пытаюсь сделать, это в том числе много времени b.hpp через повышающий С.:BOOST_PP_ITERATE() приводит к «нет такого файла или каталога»

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

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

Когда я пытаюсь скомпилировать (с -E, чтобы увидеть результат препроцессора):

g++ -E a.cpp > pp_result 

I получил эту ошибку:

In file included from a.cpp: /usr/local/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:47:37: error: b.hpp: No such file or directory

b.hpp находится в том же каталоге, я не могу видеть, что я dooing неправильно. Похоже, что g ++ ищет b.hpp в том же каталоге, что и forward1.hpp, но после загрузки документа мой код должен работать (моя версия boost 1.44).

Есть ли у кого-то такая же проблема?

+0

Работает ли простой '#include" b.hpp "? –

+0

Да, да. Я нашел workaroud, используя -L./ в команде g ++, но это все еще странно, поскольку файл включен в «", а не < >. – neodelphi

ответ

1

Да, вы должны добавить -I. в командную строку, чтобы заставить ее работать. Это добавляет каталог, в который вы начали gcc, в путь поиска include, позволяющий компилятору найти файл b.hpp.

Смежные вопросы