BOOST_PP_ITERATE () приводит к "нет такого файла или каталога" - PullRequest
1 голос
/ 30 сентября 2010

Я изучаю библиотеку препроцессора boost (потому что мне нужно ее использовать), и я хотел попробовать механизм итерации файла.Я создал минимальный проект с a.cpp и b.hpp.То, что я пытаюсь сделать, это включить много времени b.hpp через повышение 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()

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

g++ -E a.cpp > pp_result

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

В файле, включенном в a.cpp: /usr/local/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:47:37:ошибка: b.hpp: нет такого файла или каталога

b.hpp находится в том же каталоге, я не вижу, что я ошибаюсь.Кажется, g ++ ищет b.hpp в том же каталоге, что и forward1.hpp, но, следуя документации Boost, мой код должен работать (моя версия Boost 1.44).

Кто-нибудь сталкивался с такой же проблемой?

1 Ответ

1 голос
/ 30 сентября 2010

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

...