2016-07-14 10 views
0

ウィキペディアには、.bssセクションにオブジェクトファイルの実際の領域がないことが記載されています。objdump情報では、実際には.bssのサイズが0のエントリが見つかりました。ですから、問題は、オブジェクトファイルに存在する空のセクションの必要性です。 .bssはばかり.relとして、むしろ.oa.outファイルの両方で実行可能ファイルに追加されていることができないのはなぜオブジェクトファイルの.bssセクションの必要性は何ですか?

はオブジェクト・ファイルに表示されます。

更新:私は再配置のプロセスを誤解したと思います。私はまず、実行可能ファイルがリンカによってゼロから生成されたと思って、Downvotersのコメントを見て間違ったものに変わりました。

+1

私は本当にあなたの質問を理解していません。実行可能ファイル内のセクションは、実行ファイルが構成するオブジェクトファイルのセクションです。したがって、実行可能ファイルにセクションが含まれていない場合は、オブジェクトファイルにセクションを定義することによってどのように追加する必要がありますか? – Downvoter

答えて

0

あなたのコードでは、グローバル変数int arr[1000000]が宣言されているとします。この情報がオブジェクトファイルにない場合、実行可能ファイルにも入ることはできません。そしてゴミだけである情報を保持するためにオブジェクトファイルのサイズを増やすことは意味がありません。実行可能イメージと同じホールド。それはフラッシュメモリの必要性を高め、目的を果たさないでしょう。 RAMにイメージをロードするときに、この領域を割り当てる必要があります。

関連する問題