0

対応するアセンブリコードを出力するために64ビットLinuxマシンでコンパイルしようとしているCファイルheapsort.cがあります。次のコマンドを使用しています。

 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

私も提案します(すべての指摘はO数字ではなく文字です0

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

-fverbose-asm、アセンブリファイルでより多くの生成されたコメントを提供しますheapsort.s

ところで、-WallGCCに渡すことは常に良い習慣です。

本当に興味があり、GCC内の内部表現をもう少し理解したい場合は、

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

しかし、たくさんのファイルを取得する準備をしてください。
あなたはそれらの何百もの、一致するものを手に入れるでしょうheapsort.c.*

粗雑なGUIインターフェイスで任意のソースコード位置にあるGimple内部表現をクエリする場合は、MELTの使用を検討してください。MELTは主に、GCCを拡張するための高レベルのドメイン固有言語(Lispのような構文、強力なパターンマッチング、オブジェクト指向、機能、動的型付けなど)ですが、その(粗い)プローブを使用してGCC内部表現の一部をインタラクティブに照会します。

于 2013-01-10T19:50:25.350 に答える
1

「ゼロ」ではなく「O」を含む-O2である必要があります

于 2013-01-10T19:14:36.467 に答える
1

-O2の代わりに試してください-02。これは文字「O」であり、「最適化レベル2」の省略形です。

于 2013-01-10T19:14:48.487 に答える