【发布时间】:2017-11-16 06:54:21
【问题描述】:
我正在尝试使用 Yocto ADT 插件和 Eclipse Luna 构建一个 Autotools 项目。 我需要在项目中包含一些外部库,更具体地说是 boost 库。 让我们考虑最简单的情况:仅标头库。 我应该能够#include 到我的项目中。 我正在尝试编译测试代码:
#include <iostream>
#include <boost/lambda/lambda.hpp>
using namespace std;
int main(void) {
cout << "Hello World" << endl; /* prints Hello World */
return 0;
}
但我收到错误消息:“致命错误:boost/lambda/lambda.hpp:没有这样的文件或目录”
当然,我必须告诉编译器在哪里可以找到库。 我试图以不同的方式做到这一点,但没有成功。 举一些例子: 项目 -> 属性 -> C/C++ 常规 -> 路径和符号 在那里我指定了下载库和编译库的路径(在这种情况下不需要,但为了通用性添加):
在项目资源管理器下正确报告了包含,但错误仍然存在。
然后我尝试处理项目 -> 属性 -> C/C++ 常规 -> 预处理器包括:
仍然遇到同样的错误。
然后我尝试包括配置 Autotools 添加 -I 选项:
当然也没有成功。 每次构建尝试失败后,我都会运行“清除项目”和“重新配置项目”,以确保重新开始。
奇怪的是,如果我在编辑器中选择 boost/lambda/lambda.hpp 并执行“打开声明”,它会找到文件:
此时我不知道该怎么办,显然我错过了一些东西。
你能帮我吗?
附加说明:如果我使用 GCC 启动 C++ 可执行项目,则库被识别并且我没有问题。 所以我认为问题在于 Autotools 或 Yocto ADT。 我什至将 boost 库添加到我的 Yocto 构建和 SDK 中,但它不起作用。
【问题讨论】:
标签: c++ eclipse boost lambda yocto