![无法在 nautilus 中运行“共享库”](https://linux22.com/image/1144712/%E6%97%A0%E6%B3%95%E5%9C%A8%20nautilus%20%E4%B8%AD%E8%BF%90%E8%A1%8C%E2%80%9C%E5%85%B1%E4%BA%AB%E5%BA%93%E2%80%9D.png)
我最近重新安装了 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) 中单击已编译的可执行文件时,我收到以下消息:
没有安装用于“共享库”文件的应用程序”
有两种解决方法。
只需在同一目录中创建一行脚本:
./my_program
并设置允许作为程序执行文件在 Nautilus 中。 (或者
+x
通过添加chmod
。)- 在终端中打开此目录并在那里运行。(或者将文件从 Nautilus 拖放到终端)