错误 libgtk-3.so.0 未安装,即使它位于 /usr/lib/x86_64-linux-gnu 中

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

您能帮我解决这个错误吗?

ste*_*ver 5

凭直觉,我们看看问题是否在于该应用程序是 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 位应用程序?