【问题标题】:How I open .s assembly file in Linux?如何在 Linux 中打开 .s 程序集文件?
【发布时间】:2017-03-31 20:53:57
【问题描述】:

我写了我的c程序add.c,然后用cpp预处理,然后用CC编译得到一个add.s文件。现在我想打开它来查看汇编代码。找不到办法。

【问题讨论】:

  • 它们是普通的文本文件,所以请使用您喜欢的编辑器,如 vim 或 geany 等。

标签: c assembly c-preprocessor cc


【解决方案1】:

.s 文件基本上是汇编器 文件,因此您几乎可以在任何用于创建.c 文件的工具中打开它们。

换句话说,普通人会选择Notepad++Emacs,但真正的知识分子会选择Vim:-)

【讨论】:

  • 我很想仅仅因为提到 Emacs 就投反对票:-P
  • 是的,谢谢你是对的,问题是它告诉我我不能,因为在编译过程中一定发生了错误。我很想使用 cc,在终端上输入 cc add.c -o add.s 但它不起作用。
  • @Gabriele, cc add.c -o add.s 几乎肯定仍会创建一个可执行文件,它只会调用add.s。换句话说,它根本不是一个文本文件汇编器列表。您需要弄清楚哪个命令行选项告诉您的编译器创建.s 文件而不是可执行文件。例如,gcc -S add.c 将为您生成 add.s(无需明确指定实际的输出文件) - 是 -S 为您执行此操作。
  • @paxdiablo 您好,感谢您向我解释。我是一个新手,仍然不明白为什么我可以生成一个可执行文件并将其命名为 add.s。 “.s”不再是扩展名了吗,它只是文件名的一部分吗?
  • @Gabriele,你通常可以调用任何你想要的文件(在文件系统的限制内)。例如,考虑用ren something.txt something_else.exe 重命名一个文件。该文本文件不会因为您更改其名称而神奇地变成您可以执行的东西。在类 UNIX 系统(与 Windows 相对)中尤其如此,因为扩展在那里的重要性要小得多——它比所需的更规范。
【解决方案2】:

用于获取 .s 文件。 如果您有 main.cpp 文件,只需编译 g++ -S main.cpp 即可获取 main.s 文件。

现在您可以使用 vim main.s

打开

【讨论】:

    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多