Ubuntu22.04编译C++ PR时如何移除OpenSSL 3.0 devel解决报错
修复操作流程
注意:仅可卸载OpenSSL 3.0的开发包,严禁删除libssl3等OpenSSL 3.0运行时组件,否则会导致apt、桌面环境、网络工具等大量系统核心程序崩溃
- 卸载OpenSSL 3.0开发包
执行以下命令移除默认安装的OpenSSL 3.0编译依赖,该操作不会影响系统正常运行:sudo apt remove --purge libssl-dev -y - 安装OpenSSL 1.1版本开发包
先确保系统已启用universe源:sudo add-apt-repository universe -y
更新软件源缓存后安装兼容版本:sudo apt update && sudo apt install libssl1.1 libssl-dev=1.1.1* -y
安装完成后可执行pkg-config --modversion openssl验证,返回1.1.x开头的版本号即说明切换成功。 - 清理编译缓存重新构建
进入本地ftx仓库代码目录,清理之前失败编译产生的缓存文件:
若使用Makefile构建:make clean
若使用CMake构建:rm -rf build && mkdir build && cd build
之后按原有流程执行配置、编译命令即可正常完成构建。
版本回切方法
后续如果需要编译依赖OpenSSL 3.0的程序,直接执行命令切回3.0版本开发包即可,两个版本的运行时库相互独立,不会产生冲突:sudo apt install libssl-dev=3.0* -y
内容的提问来源于stack exchange,提问作者user997112
相关产品推荐
相关产品推荐

