如何在已安装 OpenSSL 的 Linux 中使用 BoringSSL?

How can I use BoringSSL in Linux that already has OpenSSL installed?

我能够在 Ubuntu 上编译 BoringSSL 并创建 libssl.a 和 libcrypto.a。在 Makefile 中,我更改了 -L 路径以指向那些库位置,并更改了 -lssl -lcrypto 以指定库名称。但是我的机器已经安装了 OpenSSL,所以在这种情况下看起来像往常一样获取 OpenSSL 库,因为这些库具有完全相同的名称。

除了完全删除或禁用 OpenSSL 并尝试之外,是否还有任何其他方法可以强制 OS 使用 BoringSSL?

如果您 -L 指向构建 BoringSSL 的目录,它将始终使用 BoringSSL 而不是系统 SSL(除非链接器仅搜索共享库,正如 John Bollinger 指出的那样) .

您还需要将 -pthread 传递给编译器,因为它无法像使用共享库那样使用静态库隐式引入 POSIX 线程库。

请确保带有共享库的库路径不在链接器的搜索路径中,然后将使用 -L 搜索路径并选取静态库。

或者尝试在 -L 之后添加 -Bstatic 标志以通知链接器仅使用静态库。