我正在使用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相关(并且有问题的defconfig不会构建RFS,只会构建工具链)。
我可以在构建树外部编译OpenSSL并将其安装到sysroot目录,但这似乎不正确,因为它会污染sysroot。
我确信我在这里遗漏了一些简单的东西--任何帮助都将不胜感激。
发布于 2017-08-03 07:41:00
在进一步阅读了buildroot文档(这非常好)之后,我发现在Target packages下选择的包实际上会被推入(或者至少应该是)工具链的sysroot中,这是有意义的。这似乎没有起作用的原因是因为我正在做一个make toolchain而不是make all (或者仅仅是一个简单的make)。这些包不是用前者构建的,所以它们不在工具链的sysroot中。
https://stackoverflow.com/questions/45449264
复制相似问题