Ubuntu 20.04安装OpenCV4.5.4(C++) make 99%报libz.so.1错误如何解决
核心问题原因
你当前使用conda的ros环境内的GCC编译OpenCV,conda环境的工具链默认只会优先读取conda环境内部的依赖库,不会主动关联系统路径下已有的libz.so.1,这就是你修改系统配置、加sudo执行都无效的根本原因。
解决方案(优先推荐)
- 首先激活你的ros conda环境:
conda activate ros - 在conda环境内安装缺失的zlib依赖:
conda install -c conda-forge zlib - 回到OpenCV的build目录,清空之前编译生成的所有缓存文件:
rm -rf ./* - 按照你之前用的参数重新执行cmake配置,全程不要加sudo
- 重新执行编译命令:
make -j4
备选方案(上述操作无效时使用)
临时退出conda环境,用Ubuntu系统原生GCC编译OpenCV:
- 执行
conda deactivate直到退出所有conda环境 - 回到OpenCV的build目录清空缓存,重新走cmake、make流程,系统原生GCC会自动识别你已经安装的libz.so.1依赖
- 编译完成后如果需要在conda的ros环境中使用该OpenCV,只需在激活ros环境后执行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/你的OpenCV编译完成的lib路径即可
你之前执行ldconfig的输出已经说明,系统
/lib/x86_64-linux-gnu路径下已经存在正常的libz.so.1文件,无需额外安装系统层面的zlib依赖。
内容的提问来源于stack exchange,提问作者theY2Kbug
相关产品推荐
相关产品推荐

