私は恐らく何か間違ったことをしています。初心者です。私を助けてもらえますか?私はC言語で簡単なHello Worldのプログラムを書いたGNUリンカの使用中に「ファイルが認識されません」
はhello.cのと呼ばれ、次のコマンドを実行しました:
gcc -S hello.c
hello.s
を生産しました。それから私は、GNUアセンブラ、as
と、そのファイルを使用:
as hello.s
まだリンクされる必要がある非実行a.out
を、生産、私は理解できますか?
私はそうのように、ld
を使用して、それをリンクしよう:
ld a.out
しかし、次のエラーを取得:
a.out: file not recognized: File truncated
そしてld
が私のファイルを削除します。
これはx86 Ubuntuシステムです。私は間違って何をしていますか?どうもありがとう!
あなたの質問に答えるために、私は彼がアセンブリを学ぼうとしていると推測しています... – Zifre
私はそれを認識しますが、gccとは独立してldとして使いたいと思います。私はx86アセンブリを学んでいます。 gcc -Sの出力は、gccがさまざまなCプログラムをどのように組み立てているかを見るのに役立ちます。次に、そのアセンブリコードを変更して再生し、最後にasとldを使用して自分でアセンブルしてリンクすることができます。私はgccがこれらのファイルをアセンブルしてリンクすることができますが、私の代わりにasとldを使用するだけです。私はasとldを直接使用したい。 –