0

我有一个 C 文件 heapsort.c 我试图在 64 位 linux 机器上编译以输出相应的汇编代码。我使用以下命令:

 gcc -02 -S heapsort.c

当我键入此内容时,我收到此错误消息

 gcc:error: unrecognized option '-02'

我试着用谷歌搜索这个错误,但没有任何帮助。有关如何导航此错误并获得 x86 输出的任何建议?

4

4 回答 4

7

标志是-O2,不是-02。那是O“优化”的字母,而不是数字0。您可能想考虑使用使差异更加明显的字体。

于 2013-01-10T19:14:25.757 回答
1

它应该是 -O2 与 'O' 不是“零”

于 2013-01-10T19:14:36.467 回答
1

尝试-O2代替-02. 它是一个字母“O”,是“优化级别 2”的简写。

于 2013-01-10T19:14:48.487 回答
1

我什至建议(因为每个指出的是字母O而不是数字0

   gcc -O2 -fverbose-asm -S heapsort.c

-fverbose-asm将在程序集文件中为您提供更多生成的注释heapsort.s

顺便说一句,传递-Wall给 GCC 始终是一个好习惯。

如果您真的很好奇并想了解更多 GCC 内部的表示,请尝试

  gcc -fdump-tree-all -O2 -S heapsort.c

但要准备好获取大量文件。
你会得到数百个,匹配heapsort.c.*

如果您想要一些粗略的 GUI 界面来查询任意源代码位置的 Gimple 内部表示,请考虑使用MELT。MELT 主要是一种高级领域特定语言(具有类似 Lisp 的语法、强大的模式匹配、面向对象、函数式、动态类型等)来扩展 GCC,但您也可以使用它的(粗略的)探针来扩展 GCC交互式查询一些 GCC 内部表示。

于 2013-01-10T19:50:25.350 回答