Boost_PP_ITERATE () приведет к «Нет такого файла или каталога»

StackOverflow https://stackoverflow.com/questions/3826082

  •  26-09-2019
  •  | 
  •  

Вопрос

Я изучаю Boost Preprocessor Library (потому что мне нужно его использовать), и я хотел попробовать механизм итерации файла. Я создал минимальный проект с A.CPP и B.HPP. То, что я пытаюсь сделать, это в том числе много времени B.HPP через 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()

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

g++ -E a.cpp > pp_result

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

В файле, включенном из A.CPP: /usr/local/include/boost/preprocessor/iteration/detail/ter/forward1.hpp:47:37: Ошибка: B.HPP: Нет такого файла или каталога

B.HPP в том же каталоге, я не вижу, что я делаю не так. Похоже, что поиск G ++ B.HPP в том же каталоге, что и FOVERSE1.HPP, но после документации по повышению, мой код должен работать (моя версия Boost - 1.44).

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top