从 ubuntu 浏览器编译并运行 C++ 可执行文件

从 ubuntu 浏览器编译并运行 C++ 可执行文件

我有一个问题,我可以从 Ubuntu 运行 Linux 可执行文件吗(不是从 Linux 命令行)?我在命令行中创建了一个文件 demo.c”,然后将其编译(然后修复错误,然后再次编译)为可执行文件“demo”。它编译、运行并从命令行给出正确的结果。我执行了 chmod +x 只是为了确保我拥有正确的权限。我返回 Ubuntu,转到文件和文件夹、文档、主页、“demo”、属性、权限,并确保选中了“允许”框。然后返回主页,右键单击“demo”并单击运行。没有成功。我检查了命令行,看看它是否可能在那里运行过。还是没有成功。如果有人可以告诉我如何在 Ubuntu 中运行可执行文件,我现在有另一个问题。我的下一个问题是,如果我可以从 Ubuntu 运行,我是否也可以在 Ubuntu 内部编译?感谢您的时间和麻烦。mbsailor

答案1

除非您的程序调用某种 GUI 弹出窗口,否则它将尝试打印到终端。程序通常期望存在stdout(输出流)。因此,您的命令运行正常,Nautilus 浏览器调用 shell 来启动您的程序,但该程序无处可打印。

Run as您可能会遇到在菜单中创建自定义条目的麻烦,或者这里有一个更简单的解决方案:

打开文本编辑器并制作此文件~/.local/share/applications/run_executable.desktop笔记~ 表示您的/home/username目录,.local是隐藏文件夹),内容如下:

[Desktop Entry]
Type=Application
Name=RunExecs
Exec=gnome-terminal -e 'bash -c "%u; read"'
Terminal=true

现在打开文件管理器,并将新文件拖到启动器。启动器上有此图标后,您只需拖放已编译的 C 代码,它就会打开gnome-terminal并运行它。我在 Ubuntu 16.04 中也有同样的设置,到目前为止没有检测到任何问题。

您可以尝试将该文件作为右键单击选项添加到文件管理器,如下所示文章,但它可能有点过时了,我个人从来没有测试过它,所以不能推荐或不推荐

编辑

我昨天还从Jacob Vlijm 的回答是您可以向 nautilus 添加自定义脚本。例如,创建/home/user/.local/share/nautilus/scripts/run_executable.sh包含以下内容的文件:

#!/bin/bash
FILE=$(readlink -e "$@")
echo "$FILE"
if [ -n "$FILE" ] ; then
   gnome-terminal -x bash -c '"$@";read' bash $FILE
fi

确保它具有可执行权限,方法是执行chmod +x ~/.local/share/nautilus/scripts/run_executable.sh并重新启动 nautilus(如果需要)。之后,您只需右键单击任何可执行文件,就会出现scripts -> run_executable.sh选项。

笔记这个问题问的是编译和运行。我不会讨论编译,因为编译通常需要手动向编译器提供选项,例如在需要链接库的情况下。如果用户愿意,他们可以修改我的脚本,但我建议不要添加编译选项,只使用运行选项

相关内容