我正在考虑在某个项目中使用Boost.Preprocessor
,但我不想让整个Boost库成为依赖项。
我可以单独复制并侥幸逃脱吗?否则,它的依赖性是什么?
答案 0 :(得分:4)
我刚刚bcp
工作:
./bcp --list preprocessor --boost=/usr/local/include/boost_1_45_0/ | grep -v preprocessor
没有grep我得到类似的东西:未检测到错误
升压/ preprocessor.hpp
升压/预处理/ arithmetic.hpp
升压/预处理/算术/ add.hpp
升压/预处理/算术/ dec.hpp
升压/预处理/算术/细节/ div_base.hpp
升压/预处理/算术/ div.hpp
升压/预处理/算术/ inc.hpp
升压/预处理/算术/ mod.hpp
升压/预处理/算术/ mul.hpp
boost / preprocessor / arithmetic / sub.hpp
尝试使用boost bcp
实用程序进行复制
我做了一个快grep -R "include" /usr/include/boost/preprocessor/* | grep -v preprocessor
并没有提出任何比赛。我本可以发誓需要配置。
编辑(我的grep-ful很弱= /)
grep -rh "include" /usr/include/boost/preprocessor/* | grep -v preprocessor | sort |uniq
#error BOOST_PP_ERROR:没有要包含的间接文件
#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
。奇怪的是,它们在{/detail/iter/forward#.hpp中被#undef
编辑,所以我可能错过了一些嵌套的宏或其他......
答案 1 :(得分:0)
如http://www.boost.org/doc/libs/1_45_0/所述,预处理器是一个仅头文件库。不需要运行时库。