VC++のdebug版でビルドされた*.exeにはデバッグ情報を含んでいるらしいのですが
*.objを削除したあと実際にデバッグしてみるとビルドしますかと聞かれ結局ビルドを
しないとだめなのですがどうしてでしょうか。*.exeだけあればデバッグできると
思ったのですが、*.objもデバッグには必要なのでしょうか?
>*.objを削除したあと実際にデバッグしてみるとビルドしますかと聞かれ
>*.objもデバッグには必要なのでしょうか
どのような手順でデバッグしようとしたか教えて下さい
それから、OS はなんですか、VC++ のバージョンは何ですか?
失礼しました。
vc++6.0 windows2000です。
ビルドしたあと、debugフォルダに作成された*.objを削除して、
vcでF10キーでデバッグを実行しようとしました。
そのときに、ビルドをするように促されたのです。
*.exeのみあればデバッグできるとおもっていたのですが...
>ビルドをするように促されたのです。
「いいえ」を選択できませんでしたか?
win98SE vc++6.0(SPなし) で、いいえを押すと
デバッグが始まりますが。
> ビルドしたあと、debugフォルダに作成された*.objを削除して、
objファイルを何故消さなければならないのかにも興味があるのですが・・・
Visual Studio からプログラムの実行を行なおうとしたとき、ビルド可能かどうか検査しない
で、いきなり実行してしまったら、ソースが変った場合のみならず、ライブラリーや、何かが
変わった事による再ビルドの機会を逃してしまい正しい実行ファイルでの実行が出来なくなる
からでしょう
この場合 *obj は *.exe を構築するために必要な要素で、*.obj は *.cpp 等から構築する
ように依存関係が決まっている場合は、やはり、 *.obj を再構築する必要があると判断する
のは何も不思議は無いのではありませんか?
具体的には、デバッガーで追跡するときにソース行と実行コードの対応が
取れなくなってデバッガ上でめちゃくちゃな位置に飛んだりします。
そういう状況でデバッガを使っても全く意味がありません。
そのため、実行ファイルが現在のソースでビルドされたものかを簡単に検査する方法とし
て
ビルドチェックを行っているのでしょう。
そのため、結果的に*.objがないとビルドチェックに引っかかりメッセージが出るのだと
思います。