コード ブロック IDE と GNU GCC コンパイラを使用しています。たとえばadd.cpp(2つの数値を追加するため)のような単純なプログラムを作成すると、通常は2つのファイルadd.exe(実行ファイル)add.o(オブジェクトファイル)が作成され、それらのいくつかに従ってadd.oはadd.exeにリンクされます実行中。私の質問は、add.o を削除したにもかかわらず、add.exe が実行されていて、必要な結果が得られていることです。オブジェクトファイルが見つからない場合、これはどのように可能ですか?? また、オブジェクトファイルが実際に何をするのか説明してください??
1556 次
6 に答える
2
オブジェクトファイルはコンパイル時にリンクされます...オブジェクトファイルはすべてのコンパイル後に冗長になります。o ファイルはビルド間で維持されるため、アプリケーションの変更されていない部分を再ビルドする必要はありません。
于 2013-05-10T14:56:18.320 に答える
1
ファイル.o
は実行時にリンクされるのではなくexe
、コンパイル時に (具体的には、リンク ステップ中に) リンクされます。実行可能ファイルを作成したら、それにリンクされているすべてのオブジェクト ファイルを安全に削除できます。に静的にリンクされたすべての静的ライブラリを削除してもかまいませんexe
。それらのコンテンツは実行可能ファイルの一部になるからです。
于 2013-05-10T14:56:18.893 に答える
1
オブジェクト ファイルには、コンパイルの結果が含まれます。exeファイルにはリンクの結果が含まれています。exeを引き続き動作させたい場合は、oファイルを削除できます
于 2013-05-10T14:56:53.397 に答える