HIRASE CONNECTION WK

programming collection

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

Link Collection

いつもリビルドの恐怖

なんか最近、Visual Studioのバージョンに関わらず、特定のプロジェクトがいつもリビルドかかります。これは本当に残念なことで、デバッグ実行しようとしたら、いつもリビルドされてますから、フルビルドに5分かかるプロジェクトは、いつも実行までに5分間無駄な時間ができてしまいます(そこで、今わんくま書いてるわけですが)。

みなさま、何かご存じですか??

ちなみに、今やってるのは・・ Visual Studio 2005のソリューションで、中にはVisual C++ のプロジェクトが16個入っています。 うぬー。

投稿日時 : 2008年2月19日 13:49

コメントを追加

# re: いつもリビルドの恐怖 2008/02/19 13:56 ghost_shell

ビルド→構成マネージャ

でチェックを外せますけど

# re: いつもリビルドの恐怖 2008/02/19 14:04 T.Hirase

それだと、いつもビルドされないじゃないですか。。

ビルドしたいプロジェクトなんですけど、
変更のあったソースだけがビルドされずに、いつもリビルドかかっているのです。
もしかしたら、バージョン管理ソフトが不味いことしてるのかもしれないです。

# re: いつもリビルドの恐怖 2008/02/19 14:14 επιστημη

タイムスタンプの狂ったファイルはありませんか?
未来から来たソースとかあると、そいつは常に更新されてると看做されて...てな。

# re: いつもリビルドの恐怖 2008/02/19 14:29 ghost_shell

>それだと、いつもビルドされないじゃないですか。。

επιστημη 先生のコメントにもあるタイムスタンプとか。
ファイルが更新されてしまっていないかチェックしてみては?

ソースを変更したプロジェクトとリビルドしてしまうプロジェクトの参照関係はどうなってます?

# re: いつもリビルドの恐怖 2008/02/19 14:55 επιστημη

うん、たとえばstdafx.hが未来から来たものだとほとんどすべての.cppがビルド対象になるです。
んでもって自分でこさえたファイルじゃないもんだから疑われないってーオマケ付き ^^;

# re: いつもリビルドの恐怖 2008/02/19 14:56 T.Hirase

>ghost_shellさま、επιστημηさま
とりあえず、ファイル数も多いのでフォルダを再帰的に潜っていって
タイムスタンプ(最後に書き込んだ日付)をチェックするツールを作りました。

で、include先やらなんやらを一斉にチェック
一応、未来時刻(2010年)に書き込んだファイルが見つかったんですけど
このファイルはプロジェクト内には入ってないですし、
includeするようなファイルでもなかったのです(resXです)。

でもまぁ、一応そのファイルのタイムスタンプを正常な時刻に戻しましたが、
やっぱり常時リビルドの状況は変わりませんでした。


>ソースを変更したプロジェクトとリビルドしてしまうプロジェクトの参照関係はどうなってます?
んー、ソースをひとつも変更せずにリビルドがかかるので、あまり関係ないですが、
「依存なし」です。

# re: いつもリビルドの恐怖 2008/02/19 15:31 melt

自分の出会ったケースでは、idl が自動的に生成するファイルのうち、使用していない tlb ファイルが更新されてたみたいで、なぜかそれのせいで毎回ビルドされていました。
tlb ファイルを生成しないようにしたらちゃんとビルドされないようになりました。

ということで、自動的に生成してたりするファイルが怪しいのかも……?

# re: いつもリビルドの恐怖 2008/02/19 16:20 T.Hirase

tlbって、VBのファイルですか?
自動生成のファイルも怪しいんですが、ちょっと不安要素を発見しました。

えっと、「更新日時が作成日時より古い」ファイルがあるんです。
んぬー、バージョン管理ソフトか・・?!

# re: いつもリビルドの恐怖 2008/02/19 16:39 επιστημη

バージョン管理を別マシン(サーバ)でやってて、そいつの時計が狂ってたりとか。

# re: いつもリビルドの恐怖 2008/02/19 20:08 T.Hirase

確かにバージョン管理はサーバーがあって、そちらで管理されていますが、
それだとすべてのプロジェクトが全力でリビルドしちゃいますね。

あ、えと。
「更新日時が作成日時より古い」は、これもツールを作って、
条件を満たすファイルの更新日時を根こそぎ現在時刻に更新しましたが・・
まったく関係なかったようです。

そういえば、前にもマネージドC++で同じことが起こっていてそのときは、
「System::Void」を「void」に書き換えたりしたことで何故か直りました。

もしや、ビルド対象のソースが多すぎたり・・・とか思ったりもしたんですが、
それなら世界各地で現象が報告されているはずなんで、
やっぱり会社の環境に依存した何かがあるのだと思います。
(もはや疑いはバージョン管理ソフトです。)

あ、ちなみに。
同じプロジェクトを複数の人で触っているんですが、
同じように強制リビルドが起こっているようです。

んぬー。

# 未来ファイルを探せ。 2008/02/21 18:33 HIRASE CONNECTION WK

未来ファイルを探せ。

# owJwkycTYoXGOHEtfmW 2014/08/05 6:49 http://crorkz.com/

J3s8YM Thanks so much for the blog article.Much thanks again. Really Great.

タイトル  
名前  
URL
コメント