【问题标题】:Can I convert an `a.out` file into an "executable" - like in C/C++ (on Linux!)? [closed]我可以在 C/C++ 中(在 linux 上!)中将 `a.out` 文件转换为“可执行文件”吗? [关闭]
【发布时间】:2018-08-13 15:16:34
【问题描述】:

我记得在 Windows 上使用 Visual Studio for C/C++,它为我创建的每个控制台应用程序创建了一个 name.exe 文件。我想知道我是否可以在linux上做到这一点。我不想用./a.out打开它,我想知道我是否可以像在windows中一样,双击文件并弹出一个控制台。

PS:我不确定标题,你可以换一个更相关的

【问题讨论】:

  • 双击哪里?
  • 你在问如何给那个文件起一个不同的名字吗?
  • 该文件是可执行文件。在 *nix 环境中,除非 Windowing 工具包提供,否则不存在“点击”之类的东西。例如,在 Ubuntu 上,您单击一个图标来启动一个应用程序,该应用程序将调用一个可执行文件,就像您给出的示例一样。
  • conio 真的吗?
  • 是的,因为我在考虑 windows c/c++ 中的conio 库。我希望我没有做错:/

标签: c++ c linux terminal


【解决方案1】:

a.out 可执行文件...重命名它。如果要 gcc 指定可执行文件名,请使用“-o”编译器选项,例如:

gcc file.c -o exename

【讨论】:

  • 好的,但是当我双击name.exe文件时,弹出An error occurred while loading the archive ...
  • @StefanPopescu -- 只是猜测,但您的可执行文件可能需要命令行参数才能运行。 UNIX 非常以命令行为中心。
【解决方案2】:

是的,你可以。 Linux 中的 a.out 就像 Windows 中的 name.exe 一样。在 Unix/Linux 环境中,CC++ 编译器默认将 exe 生成为 a.out,这只是一个 exe 文件。在 Linux 中,只需编译您的代码,如下所示,根据您的要求创建 exe:-

gcc your_cpp_file.cpp -o name.exe

【讨论】:

    【解决方案3】:

    如果我理解正确,您的程序需要terminal。当您在文件管理器中单击该程序时,它会运行该程序,但由于它没有打开终端,因此输出会转到某个日志文件。您想打开一个终端并从文件管理器运行您的程序。

    在 Linux 下,这是通过 .desktop file 完成的。与许多事情一样,Arch Wiki 中有一个很好的教程。这是一个独立于可执行文件的文件:Linux 可执行文件没有像 Windows 那样的“控制台”应用程序的特殊情况。一劳永逸地创建一个带有程序路径的.desktop 文件。您可以根据需要将.desktop 文件放在同一目录或不同目录中。 .desktop 文件可以是这样的:

    [Desktop Entry]
    Type=Application
    Version=1.0
    Name=Run a.out
    Exec=./a.out
    Terminal=True
    

    赋予.desktop 执行权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      相关资源
      最近更新 更多