我正在尝试运行可执行文件 FiniteField,如下所示,但似乎我需要一些缺少的包,因此我尝试使用 objdump 命令查看缺少的内容。
看起来该命令将列出所需的包,无论我是否已经拥有它们,这可能会开始变得乏味,如您所见,例如它说我需要 libQtGui.so.4。我尝试使用多个名称来安装它,然后,如果正确的话,我意识到我已经拥有它了。
因此,我需要的名称与我在“sudo apt-get install ___”短语中输入的名称不完全匹配。
我怎样才能安装我需要的一切,以便我可以成功运行我的可执行文件?
./FiniteField
bash: ./FiniteField: No such file or directory
objdump -x 有限域 |需要 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.
最佳答案
objdump 显示库名称。
apt-get 需要包名称,而不是库名称(库位于包内)。
您可以使用 rpmfind.net 查找包含所需库的包的名称,如下所示:
http://rpmfind.net/linux/rpm2html/search.php?query=libQtGui.so.4
在本例中,您正在寻找软件包qt-x11(如果 apt-get 无法仅通过名称自行确定版本,则最终会找到适合您系统的版本号)。
关于Linux 安装可执行文件所需的软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446741/