Набор инструментов Buildroot с openssl

Я использую 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 для моей встроенной цели, что не является проблемой. Проблема в том, что мне нужно включить его в цепочку инструментов.

У меня есть целевые пакеты -> Библиотеки -> Крипто -> openssl установлено в y, но я не думаю, что это имеет какое-либо значение в этом сценарии, поскольку я считаю, что это относится только к RFS (а рассматриваемый defconfig не построить RFS, только набор инструментов).

Я мог бы скомпилировать OpenSSL вне дерева buildroot и установить его в каталог sysroot, но это не кажется правильным, так как это приведет к загрязнению sysroot.

Я уверен, что мне здесь не хватает чего-то простого - любая помощь будет принята с благодарностью.


person trigger    schedule 01.08.2017    source источник
comment
Это здесь. Вам необходимо создать пакеты с точки зрения Buildroot для вашего пользовательского программного обеспечения.   -  person 0andriy    schedule 02.08.2017


Ответы (1)


После некоторого дальнейшего чтения документации buildroot (что очень хорошо) я решил, что пакеты, выбранные в Target packages, действительно помещаются в sysroot цепочки инструментов (или, по крайней мере, должны), что имело бы смысл. Причина, по которой это не работало, заключалась в том, что я делал make toolchain, а не make all (или просто make). Пакеты не собирались с использованием первого, поэтому они не входили в sysroot цепочки инструментов.

person trigger    schedule 02.08.2017
comment
В Buildroot 2017.08 вы также сможете выполнить команду make sdk для сборки всех пакетов, а также сделать результат перемещаемым. Однако вы должны убедиться, что openssl, который попадает в rootfs, точно такой же, как и в вашем SDK. - person Arnout; 05.08.2017