【问题标题】:Autotools project and external libraries on EclipseEclipse 上的 Autotools 项目和外部库
【发布时间】: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


    【解决方案1】:

    我成功地编译添加到 /src/Makefile.am 库中。

    我仍然不明白为什么这与更改 Autotools 配置标志不同。

    如果有人有答案,请注意解释。

    【讨论】:

    • 我想这取决于 Autotools,因为项目正在由 Makefile 构建。那么,您的问题是为什么 eclipse 包含配置不会影响 makefile 内容?
    • 没错,为什么 Eclipse Autotool 设置不会影响我的源文件夹中的 Makefile.am
    • 3 年过去了,你不知道吗?
    猜你喜欢
    • 1970-01-01
    • 2018-04-27
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2014-04-30
    相关资源
    最近更新 更多