Как построить локон с помощью boringssl?

Я пытаюсь построить curl с boringssl на Ubuntu 16.04.

Я Boringssl построен в порядке.

С curl 7.53 я настраиваю используя:

./configure --with-ssl=/home/john/dev/boringssl

и вывод говорит "Поддержка SSL: включен (BoringSSL)" ОК.

Но когда я makeЯ получаю ошибки, начиная с

  CC       vtls/libcurl_la-openssl.lo
In file included from vtls/openssl.c:86:0:
/usr/include/openssl/ui.h:85:1: error: unknown type name ‘UI’
 UI *UI_new(void);
 ^
/usr/include/openssl/ui.h:86:1: error: unknown type name ‘UI’
 UI *UI_new_method(const UI_METHOD *method);
 ^
/usr/include/openssl/ui.h:86:25: error: unknown type name ‘UI_METHOD’
 UI *UI_new_method(const UI_METHOD *method);
                         ^

и заканчивая

Makefile:2023: recipe for target 'vtls/libcurl_la-openssl.lo' failed
make[2]: *** [vtls/libcurl_la-openssl.lo] Error 1
make[2]: Leaving directory '/home/john/dev/curl-7.53.0/lib'
Makefile:734: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/john/dev/curl-7.53.0/lib'
Makefile:893: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

Я не уверен, если это /usr/include/openssl/ui.h заголовок должен использоваться, когда curl настроен для сборки с помощью boringssl, похоже, этот файл существует только в OpenSSL, а не в boringssl.

1 ответ

Решение

Нет никаких openssl/ui.h в дереве boringssl ваша сборка явно нашла другой набор включаемых файлов (я полагаю, обычный OpenSSL).

Вот как я строю с помощью boringssl:

построить boringssl

$ HOME / src - это место, где я поместил код в этом примере. Вы можете выбрать где угодно.

$ cd $HOME/src
$ git clone https://boringssl.googlesource.com/boringssl
$ cd boringssl
$ mkdir build
$ cd build
$ cmake ..
$ make

настроить дерево сборки, чтобы быть обнаруженным с помощью конфигурации curl

В корне дерева исходного кода boringssl убедитесь, что lib и include реж. lib dir должен содержать две библиотеки (я делаю их символическими ссылками в директорию сборки). include dir уже присутствует по умолчанию. Сделать и заполнить lib как это (команды, выданные в корне дерева исходного кода, а не в build/ подкаталог).

$ mkdir lib
$ cd lib
$ ln -s ../build/ssl/libssl.a
$ ln -s ../build/crypoto/libcrypto.a

настроить локон

LIBS=-lpthread ./configure --with-ssl=$HOME/src/boringssl (где я указываю на корень дерева boringssl)

убедитесь, что в конце прогона конфигурирования должен быть указан BoringSSL для использования

построить локон

бежать make в исходном дереве curl

Теперь вы можете установить curl как обычно make install и т.п.

Другие вопросы по тегам