cla*_*ohn 3 shared-library software-installation
我正在尝试使用 GTK 安装 CAN仿真器软件,但不断收到错误消息。
CANMate:加载共享库时出错:libgtk-3.so.0:无法打开共享对象文件:没有这样的文件或目录
但是当apt说 libgtk-3 已安装时:
$ sudo apt install libgtk-3-0 libgtk-3-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgtk-3-0 is already the newest version (3.22.30-1ubuntu1).
libgtk-3-dev is already the newest version (3.22.30-1ubuntu1).
Run Code Online (Sandbox Code Playgroud)
共享库可以在里面找到/usr/lib/x86_64-linux-gnu。
$ ls | grep libgtk-3
libgtk-3-0
libgtk-3.so
libgtk-3.so.0
libgtk-3.so.0.2200.30
Run Code Online (Sandbox Code Playgroud)
我认为安装文件在安装时CANMatev1.3.deb无法找到共享lib。
您能帮我解决这个错误吗?
凭直觉,我们看看问题是否在于该应用程序是 32 位的
将 deb 解压到本地目录
$ mkdir ./tmproot
$ dpkg -x CANMAte_V1.3_Linux/deb/CANMatev1.3.deb ./tmproot
Run Code Online (Sandbox Code Playgroud)检查应用程序二进制文件
$ file ./tmproot/usr/bin/CANMate
./tmproot/usr/bin/CANMate: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=061c53b0a1b07aca998506681c2a93039181979e, not stripped
Run Code Online (Sandbox Code Playgroud)因此,由于您使用的是 64 位操作系统,因此您需要启用多架构并安装任何所需库的 32 位版本
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libgtk-3-0:i386
Run Code Online (Sandbox Code Playgroud)
另请参阅如何在 Ubuntu 64 位中运行 32 位应用程序?
| 归档时间: |
|
| 查看次数: |
34489 次 |
| 最近记录: |