Новый ответ
Я только что получил bcp
работу:
./bcp --list preprocessor --boost=/usr/local/include/boost_1_45_0/ | grep -v preprocessor
no errors detected
б/н Grep я получаю что-то вроде:
boost/preprocessor.hpp
boost/preprocessor/arithmetic.hpp
boost/preprocessor/arithmetic/add.hpp
boost/preprocessor/arithmetic/dec.hpp
boost/preprocessor/arithmetic/detail/div_base.hpp
boost/preprocessor/arithmetic/div.hpp
boost/preprocessor/arithmetic/inc.hpp
boost/preprocessor/arithmetic/mod.hpp
boost/preprocessor/arithmetic/mul.hpp
boost/preprocessor/arithmetic/sub.hpp
Оригинальный ответ
Попробуйте с помощью утилиты подталкивание bcp
, чтобы скопировать его
Я быстро grep -R "include" /usr/include/boost/preprocessor/* | grep -v preprocessor
и не придумали ни спичек. Я мог бы поклясться, что этот конфиг нужен.
Edit (мой Grep-FUL слаб = /) grep -rh "include" /usr/include/boost/preprocessor/* | grep -v preprocessor | sort |uniq
# error BOOST_PP_ERROR: no indirect file to include
# include BOOST_PP_FILENAME_1
# include BOOST_PP_FILENAME_1
# include BOOST_PP_FILENAME_2
# include BOOST_PP_FILENAME_2
# include BOOST_PP_FILENAME_3
# include BOOST_PP_FILENAME_3
# include BOOST_PP_FILENAME_4
# include BOOST_PP_FILENAME_4
# include BOOST_PP_FILENAME_5
# include BOOST_PP_FILENAME_5
# include BOOST_PP_INDIRECT_SELF
grep -rhE "define\\s+BOOST_PP_FILENAME" /usr/include/boost/preprocessor/* | sort |uniq
# define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1)
# define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)
# define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)
# define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)
# define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)
BOOST_PP_ITERATION_PARAMS_ # не кажутся #defined
в любом месте. Как ни странно, они #undef
ЕД в ./detail/iter/forward#.hpp, так что я, вероятно, не хватает какой-то вложенной макрос или другой ...
Похоже, что компиляторы согласны с реализацией препроцессора. – Anycorn
Ваш тест испорчен. Перед каждым совпадением он печатает, grep будет печатать имя файла, в котором он нашел совпадение. Это будет включать «препроцессор» из префикса имени файла. Используйте опцию '-h', чтобы опустить это. –
На ubuntu это сработало для меня 'mkdir pp; Препроцессор bcp --boost =/usr/include/pp/' – portforwardpodcast