1

我正在学习 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)。

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

4

1 回答 1

1

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

于 2010-09-30T12:27:49.173 回答