尝试编译 openssl 时出现以下错误。我正在使用 bazel 并且正在使用 gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0。我正在使用 Openssl 1.1.1i。
util/netevent.c:1062: error: undefined reference to 'SSL_get1_peer_certificate'
util/netevent.c:1088: error: undefined reference to 'SSL_get1_peer_certificate'
collect2: error: ld returned 1 exit status
这是我为包装 openssl 编写的 BUILD 文件。以前也是如此,所以我不确定为什么事情会发生变化。
package(default_visibility = ["//visibility:public"])
cc_library(
name = "libssl",
srcs = glob(["**/libssl.a"]),
hdrs = glob(["**/ssl/**/*.h"])
)
cc_library(
name = "libcrypto",
srcs = glob(["**/libcrypto.a"]),
hdrs = glob(["**/crypto/**/*.h"])
)
OpenSSL 配置为
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1i (0x1010108fL) for linux-x86_64
我正在链接 -lssl 和 -lcrypto。
我认为问题出在我正在使用的库上,因为它构建并以某种方式获取SSL_get1_peer_certificate
而不是SSL_get_peer_certificate
我 greped 并且它构建的实际文件使用了正确的函数,但二进制文件有错误的函数......