无法在 nautilus 中运行“共享库”

无法在 nautilus 中运行“共享库”

我最近重新安装了 64 位 Ubuntu(之前使用的是 32 位)。我的主文件夹位于一个分区,系统位于另一个分区。因此,当我重新安装时,我保留了旧的主文件夹。

我的问题是,现在,使用 SDL 的 c++ 可执行文件被识别为“共享库”,因此我无法直接从 nautilus 运行它们。我搜索了一个解决方案,发现它是由 mime-type 的一个错误引起的(请参阅https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1639531),它将每个标记为“位置无关可执行文件”(由 gcc 标记为)的文件视为“共享库”。

由于似乎没有办法让 mime-type 正常识别它,我希望能够在 nautilus 中启动“共享库”文件(因为它们可以从终端运行)。我尝试将此类文件的默认程序设置为名为“运行软件”的应用程序,但当我尝试启动它时,什么也没发生。

让 nautilus 运行某种类型的文件而不是将其与应用程序关联的正确方法是什么?

答案1

更好的解决方案是创建一个桌面启动器,将完整的文件名传递给 shell,如下例所示。

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Run Executable
Comment=Run Executable
Exec="/bin/sh" -c %f
Icon=application.png
Terminal=false

将其保存在 ~/.local/share/applications 中的任意名称下。
此后,打开 Nautilus,选择可执行文件,右键单击打开内容菜单,然后在“使用其他应用程序打开”对话框中选择新的启动器。
这样,您就可以快速启动任何可执行文件。

答案2

我有同样的问题。当我在 Nautilus (Files 3.20.4) 中单击已编译的可执行文件时,我收到以下消息:

没有安装用于“共享库”文件的应用程序”

有两种解决方法。

  1. 只需在同一目录中创建一行脚本:

    ./my_program
    

    并设置允许作为程序执行文件在 Nautilus 中。 (或者+x通过添加chmod。)

  2. 在终端中打开此目录并在那里运行。(或者将文件从 Nautilus 拖放到终端)

相关内容