加载共享库时出错:libpng12.so.0:错误的 ELF 类:ELFCLASS64

加载共享库时出错:libpng12.so.0:错误的 ELF 类:ELFCLASS64

我尝试在 Ubuntu 22.04(64 位)上运行 Quartus 13,但和许多其他人一样,libpng12.so.0 不允许它运行。首先,它找不到该文件。然后我从对另一个问题的回答,然后将文件手动放置在 Quartus 安装文件夹中,因此错误变为:

quartus: error while loading shared libraries: libpng12.so.0: wrong ELF class: ELFCLASS64

Quartus的安装文件夹有以下路径:/home/developer/n/quartus/bin

现在我问这个问题是因为许多解决方案在 Ubuntu 21 之前运行良好。我需要针对 Ubuntu 22.04 的 32 位 libpng12 包进行修复(我推测这就是出现 ELF 类错误的原因)。

命令find -name libpng12返回:

./usr/local/lib/libpng12.so.0
./usr/lib/x86_64-linux-gnu/libpng12.so.0
./home/developer/n/libpng/.libs/libpng12.so.0
./root/libpng-1.2.54/.libs/libpng12.so.0
find: ‘./run/user/1000/doc’: Permission denied
find: ‘./run/user/1000/gvfs’: Permission denied
./snap/core/14399/lib/x86_64-linux-gnu/libpng12.so.0
./snap/core/14399/usr/lib/x86_64-linux-gnu/libpng12.so.0

我将它们全部逐一复制到 /quartus/bin,但每次都出现相同的 ELFCLASS 错误。

我还尝试将 libpng12 的路径放入ld.so.conf文件中,/etc然后运行,ldconfig但问题仍然存在。我尝试过以下答案:

在 ubuntu 22.04 上安装 libpng12

https://bbs.archlinux.org/viewtopic.php?id=212077

https://community.intel.com/t5/Programmable-Devices/Quartus-can-t-find-shared-library/td-p/161251

加载共享库时出错:libpng12.so.0

这不再有效: sudo apt-get install libpng12-0:i386

此包不再可用: https://packages.ubuntu.com/xenial/i386/libpng12-0/download

如何运行我的软件?

答案1

这在 64 位 Ubuntu 22.04 上完美运行:

sudo apt-get install libpng12-0

这将安装 Quartus 13 所需的 64 位 libpng12 版本。转到 Quartus 安装的 /bin 文件夹。我的路径是这样的:

/root/altera/13.0sp1/quartus/bin

然后运行这个:

./quartus --64bit

答案2

我在使用 Libero 时也遇到过类似的问题,而不是 Quartus。不幸的是,这是使用 32 位库的 Libero 的 64 位版本,没有纯 64 位版本的 Libero。

对我来说,从 Launchpad Librarian 的旧版本 Ubuntu 获取库的副本,然后提取库并手动安装就足够了。

wget http://launchpadlibrarian.net/377985836/libpng12-0_1.2.54-1ubuntu1.1_i386.deb
dpkg-deb -xv libpng12-0_1.2.54-1ubuntu1.1_i386.deb ./libpng
mv libpng/lib/i386-linux-gnu/libpng12.so.0* /lib/i386-linux-gnu/
rm -rf libpng*
ldconfig

相关内容