Linux为可执行文件安装所需的包

时间:2015-05-25 22:18:26

标签: linux ubuntu grep executable packages

我试图运行可执行的FiniteField,如下所示,但似乎我需要一些丢失的软件包,所以我尝试使用objdump命令查看我遗漏的内容。

看起来命令会列出所需的软件包,无论我是否已经拥有它们,这可能会开始变得乏味,因为你可以看到例如它说我需要libQtGui.so.4。我尝试使用几个名称安装它,然后,正确,意识到我已经拥有它。

所以我需要的名字与我在" sudo apt-get install ___"中输入的内容完全匹配。短语。

如何才能安装我需要的所有东西,以便我可以成功运行我的可执行文件?

./ FiniteField

bash: ./FiniteField: No such file or directory

objdump -x FiniteField | grep需要

  NEEDED               libQtGui.so.4
  NEEDED               libQtCore.so.4
  NEEDED               libpthread.so.0
  NEEDED               libstdc++.so.6
  NEEDED               libm.so.6
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.6

sudo apt-get install libQtGui.so.4

E: Unable to locate package libQtGui.so.4
E: Couldn't find any package by regex 'libQtGui.so.4'

sudo apt-get install libqtgui

E: Unable to locate package libqtgui

sudo apt-get install libqtgui4

libqtgui4 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 476 not upgraded.

1 个答案:

答案 0 :(得分:0)

objdump显示库名称。

apt-get需要包名,而不是库名(库在包内)。

您可以使用rpmfind.net查找包含所需库的包的名称,如下所示:

http://rpmfind.net/linux/rpm2html/search.php?query=libQtGui.so.4

在这种情况下,您正在寻找 qt-x11 软件包(如果apt-get无法自行找出版本,最终会为您的系统安装一个版本号只有名字)。

相关问题