Ubuntu libpng12无法安装解决

本文介绍在Ubuntu14及以上版本中安装不被支持的libpng12库的方法,适用于依赖该库的软件,如CiscoPacketTracer。通过修改源列表并添加特定版本的Ubuntu仓库,实现低版本libpng的安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu libpng12无法安装解决

Ubuntu 14以上就已经不再支持libpng12,然而有些软件又依赖于libpng12(如我要使用的Cisco Packet Tracer)。我们可以采用特定的方法安装低版本的libpng。

sudo vim /etc/apt/source.list

根据Ubuntu官网的提示,我们在其中加上deb http://cz.archive.ubuntu.com/ubuntu xenial main

然后保存,并更新package list后即可安装

sudo apt-get update
sudo apt-get install libpng12-0
### 跨平台 Libpng安装与配置 在 Ubuntu安装跨平台的 Libpng解决交叉编译 OpenCV 中与 PNG 相关的 `undefined reference` 错误,可以通过以下方法实现。 #### 1. 安装必要的工具链和依赖项 为了支持 ARM 架构上的交叉编译环境,需先安装 GCC 工具链及相关依赖库: ```bash sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ cmake ninja-build pkg-config build-essential git wget unzip ``` 这一步确保了基础开发环境已准备好[^1]。 --- #### 2. 下载并构建 Libpng 支持 NEON 的版本 OpenCV 报错中的 `undefined reference to png_*_neon` 表明当前使用的 Libpng 版本缺少对 NEON 指令集的支持。因此需要手动下载最新版 Libpng,并启用 NEON 功能重新编译。 ##### (1) 获取源码 访问官方仓库获取最新的稳定版本(建议使用 v1.6 或更高版本): ```bash wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.13/zlib-1.2.13.tar.gz tar xf zlib-1.2.13.tar.gz cd zlib-1.2.13/ wget https://downloads.sourceforge.net/project/libpng/libpng16/older-releases/1.6.37/libpng-1.6.37.tar.xz tar xf libpng-1.6.37.tar.xz cd ../libpng-1.6.37/ ``` ##### (2) 配置交叉编译选项 设置目标架构为 AArch64,并指定 ZLIB 库路径: ```bash export CC=aarch64-linux-gnu-gcc export CXX=aarch64-linux-gnu-g++ export AR=aarch64-linux-gnu-ar export RANLIB=aarch64-linux-gnu-ranlib mkdir build && cd build cmake .. \ -DCMAKE_SYSTEM_NAME=Linux \ -DCMAKE_C_COMPILER=$CC \ -DCMAKE_CXX_COMPILER=$CXX \ -DPNG_ARM_NEON=yes \ -DZLIB_INCLUDE_DIR=/path/to/zlib/include \ -DZLIB_LIBRARY=/path/to/zlib/lib/libz.a make -j$(nproc) sudo make install DESTDIR=$(pwd)/install_root ``` 注意替换 `/path/to/zlib/*` 为你实际解压后的 ZLIB 文件夹位置[^2]。 --- #### 3. 修改 OpenCV 编译参数 完成 Libpng 的定制化编译后,在 OpenCV 的 CMake 参数中加入新生成的静态库路径: ```bash cmake -S . -B build \ -DCMAKE_TOOLCHAIN_FILE=path/to/toolchain-arm.cmake \ -DBUILD_opencv_world=OFF \ -DWITH_PNG=ON \ -DPNG_LIBRARY=$(pwd)/../libpng/build/install_root/usr/local/lib/libpng.a \ -DPNG_PNG_INCLUDE_DIR=$(pwd)/../libpng/build/install_root/usr/local/include/png.h cd build && make -j$(nproc) ``` 通过这种方式可以有效规避因默认系统包缺失 NEON 扩展而导致的链接失败问题[^3]。 --- #### 常见注意事项 如果仍然存在未定义符号的情况,则可能是某些子模块尚未完全适配特定硬件特性所致。此时可尝试禁用部分功能来绕过冲突区域: ```bash -DENABLE_NEON=OFF ``` 或者更新至更接近主线分支的新发行版以获得更好的兼容性改进记录[^4]。 ---
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值