我试图运行可执行的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.
答案 0 :(得分:0)
objdump显示库名称。
apt-get需要包名,而不是库名(库在包内)。
您可以使用rpmfind.net查找包含所需库的包的名称,如下所示:
http://rpmfind.net/linux/rpm2html/search.php?query=libQtGui.so.4
在这种情况下,您正在寻找 qt-x11 软件包(如果apt-get无法自行找出版本,最终会为您的系统安装一个版本号只有名字)。