我正在尝试在Ubuntu 16.04上使用boringssl构建curl。
我已经把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
我不确定在将curl配置为使用boringssl构建时是否应使用此
/usr/include/openssl/ui.h
标头,似乎此文件仅存在于OpenSSL中,而不存在于boringssl中。 最佳答案
boringssl树中没有openssl/ui.h
,您的构建显然找到了另一组包含文件(我猜是普通的OpenSSL)。
这就是我用boringssl构建的方式:
建立无聊的
$ HOME / src是在此示例中放置代码的位置。您可以随时随地选择。
$ cd $HOME/src
$ git clone https://boringssl.googlesource.com/boringssl
$ cd boringssl
$ mkdir build
$ cd build
$ cmake ..
$ make
设置构建树以被curl的configure检测到
在boringssl源树的根目录中,确保有一个
lib
和include
目录。 lib
目录应包含两个库(我将它们符号链接到构建目录中)。默认情况下,include
目录已存在。像这样制作并填充lib
(命令在源树根目录中发出,而不是在build/
子目录中发出)。$ mkdir lib
$ cd lib
$ ln -s ../build/ssl/libssl.a
$ ln -s ../build/crypto/libcrypto.a
配置卷曲
LIBS=-lpthread ./configure --with-ssl=$HOME/src/boringssl
(我指出了无聊的树的根)验证在配置运行结束时,应该说它检测到要使用BoringSSL
卷曲
在curl源代码树中运行
make
现在,您可以使用
make install
等正常安装curl。