我正在学习 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 文档,我的代码应该可以工作(我的 boost 版本是 1.44)。
有没有人遇到过同样的问题?