Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我能够在 Ubuntu 上编译 BoringSSL 并创建 libssl.a 和 libcrypto.a。在 Makefile 中,我更改-L了指向这些库位置并-lssl -lcrypto指定库名称的路径。但是,我的机器已经安装了 OpenSSL,所以在这种情况下,看起来 OpenSSL 库一如既往地被拾取,因为这些库具有完全相同的名称。
-L
-lssl -lcrypto
除了完全删除或禁用 OpenSSL 并尝试之外,是否还有其他方法可以强制操作系统使用 BoringSSL?
如果您-L指向构建 BoringSSL 的目录,它将始终使用 BoringSSL 而不是系统 SSL(除非链接器仅搜索共享库,正如 John Bollinger 指出的那样)。
您还需要传递-pthread给编译器,因为它不能像使用共享库那样使用静态库隐式拉入 POSIX 线程库。
-pthread
请确保共享库的库路径不在链接器的搜索路径中,然后将使用 -L 搜索路径并选择静态库。
或者尝试在 -L 之后添加 -Bstatic 标志以通知链接器仅使用静态库。