【问题标题】:Buildroot toolchain with openssl使用 openssl 构建根工具链
【发布时间】:2017-08-01 23:44:19
【问题描述】:

我正在使用 Buildroot (2017.02.5) 构建自定义交叉编译工具链。我有两个 buildroot 配置;一种用于构建 RFS,另一种纯粹用于构建工具链。我以这种方式配置了东西,因为我不希望重新构建工具链,除非我故意重新构建它 - 构建 RFS 的配置将此工具链引用为外部工具链。

一般来说,构建的工具链工作正常,但我有一些现有的应用程序(Linux 用户空间)#include<openssl/md5.h>。当我尝试编译它时,我得到一个"<openssl/md5.h>: No such file or directory" 错误,这是预期的,因为生成的工具链的 sysroot 目录不包含 openssl 目录。

如何让 buildroot 在工具链中包含 openssl?我所做的所有搜索似乎都指向为我的嵌入式目标交叉编译 openssl,这不是问题。问题是我需要将它包含在工具链中。

我有 Target packages --> Libraries --> Crypto --> openssl 设置为 y,但我认为这在这种情况下没有任何区别,因为我认为它仅与 RFS(以及question 不构建 RFS,仅构建工具链)。

我可以在 buildroot 树之外编译 OpenSSL 并将其安装到 sysroot 目录,但这似乎不正确,因为它会污染 sysroot。

我确定我在这里遗漏了一些简单的东西 - 任何帮助将不胜感激。

【问题讨论】:

  • 它就在那里。您需要根据 Buildroot 为您的自定义软件创建一个包。

标签: linux embedded-linux buildroot gnu-toolchain linux-toolchain


【解决方案1】:

在进一步阅读 buildroot 文档(非常好)之后,我发现在Target packages 下选择的包实际上确实被推入了工具链的sysroot(或至少应该如此),这将有道理。这似乎不起作用的原因是因为我正在做一个make toolchain 而不是make all(或只是一个简单的make)。这些包不是用前者构建的,所以它们不在工具链的sysroot 中。

【讨论】:

  • 在 Buildroot 2017.08 中,您还可以执行“make sdk”来构建所有包并使结果可重定位。但是,您必须确保您自己的 rootfs 中的 openssl 与您的 SDK 中的完全一样。
猜你喜欢
  • 1970-01-01
  • 2020-01-23
  • 1970-01-01
  • 2013-02-01
  • 2012-02-25
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
相关资源
最近更新 更多