重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

場違いならすみません。
Visual Studio .NET 2003を使って今卒業研究(C++)をしています。
少し前から気になっていることなのですが例えばビルド時に「error LNK2001: 外部シンボル "~~" は未解決です」と出たとします。
そして修正が「ヘッダファイル」の場合、ビルドすると修正は出来ているのに同じエラーが出ます。
リビルドするとエラーはなくなるのですが…
これは仕様なのでしょうか?
それとも単に私がビルドの仕組みを理解してないだけなのでしょうか。
以前にもプログラムを書いていた時何度修正してビルドしても同じエラーが出るので試しにリビルドするとすんなりうまくいったなんて事もあったのでとても気になっていました。
分かりにくい説明かもしれませんが何か分かる方教えていただけませんか?
よろしくお願いします。

A 回答 (3件)

ビルドでは、ブラウザでいうなればキャッシュがきいている状態のときがあります。


リビルドは、キャッシュを無視して更新状態なので、全て再コンパイルすると。

特にソースファイル自体ではなく、ヘッダファイルのみ更新した場合は、ソースファイルは更新されてねーやってことで、ビルドではビルドしなおしてくれなかったりすることがあります。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
リビルドした時「中間ファイルを削除しています」みたいのが出ますがあれがブラウザでいうキャッシュを削除してるみたいな感じですね。

お礼日時:2004/09/25 12:11

ヘッダに限るということなら、中間ファイルは


.pch プリコンパイルヘッダ
が原因かな。

私もVC6で似たようなことがあって、その時はpchを作らないように変更してしまいました。
通常問題ないんですが。

コンパイルが遅くなりますが、マシンの速度とか作るプログラムのサイズによりますから。
余程大きなプログラムサイズでないと気にならないでしょう。
そのわずかな時間より不可解な動作の方が余程気になりますし。
原因はわかりません。Microsoftだしと諦めてます(^^;

後はファイルの修正とコンパイルのマシンが違ったり、
なんらかの理由で時間が狂っていたりすると、
修正したファイルの方が古いということになって
コンパイルされないとか、毎回コンパイルされるとかありますね。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
そんなに大きなプログラムでもないのでその方法も一度試してみたいと思います。
少し前は私もVC6を使っていたのですがあの時に比べ細かい事でもコンパイルエラー出るようになったり時々謎な動作がある時あります。(このマシンが古いのもありますが)

お礼日時:2004/09/25 12:20

中間ファイル(こういう言い方をしているのですが・・・実際は・・・??)ができ、


ファイルのリンク情報ファイルなどができます。
ビルドは、それを元にして、構成し直すのに対し、
リビルドは、その中間ファイルを削除し、もう一度中間ファイルを作り直すという感じになります。

なので、プログラムのかなりの修正をした場合は、
リビルドをしています。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
そうですね、これからは修正が多かったり新しい機能を追加する時はリビルドするようにしていこうと思います。

お礼日時:2004/09/25 12:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!