BOOST_PP_ITERATE()导致“没有这样的文件或目录”

时间:2010-09-29 21:43:01

标签: c++ boost boost-preprocessor

我正在学习boost预处理器库(因为我需要使用它),我想尝试文件迭代机制。我用a.cpp和b.hpp建立了一个最小的项目。我想要做的是通过boost pp包含很多时间b.hpp:

#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 ++在与forward1.hpp相同的目录中搜索b.hpp,但是按照boost文档我的代码应该可以工作(我的提升版本是1.44)。

有没有人遇到同样的问题?

1 个答案:

答案 0 :(得分:1)

是的,您需要在命令行中添加-I.才能使其正常工作。这会将您启动gcc的目录添加到包含搜索路径,从而允许编译器找到文件b.hpp