我学习升压预处理器库(因为我需要使用它),我想尝试的文件迭代机制。我已经设置了a.cpp和b.hpp最小的项目。我正在试图做的是包括通过升压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是在同一目录下,我什么也看不见,我dooing错了。这似乎在同一个目录中forward1.hpp的G ++搜索b.hpp,但Boost文档我的代码应该工作如下(我增压版本是1.44)。

是否有人经历了同样的问题?

有帮助吗?

解决方案

是的,你需要在-I.为了使工作添加到命令行。这增加了该目录,你到包括搜索路径开始GCC,让编译器找到该文件b.hpp

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top