質問

ほとんどの開発とVisual C++を使用してい部分を、例えばプレスF7とのみを変更C++ファイルおよび依存関係を取得し再建され、その後の増分します。に渡す前にバージョンを試験している注意事項の完全再構築し、約45分かかり自分の現在のプロジェクト.自然と精神との融合によって投稿論文を提唱し、この動作がこれまでになかったこと、必要な場合は、いかがでしょうか?な影響を納入EXEにおけるPDB(適当であることを見いだした利用実験)?いろいろなソフトウェア機能との違いはどこにあるかの試験観点?

リビルドが、私が使っているVS2005、インクリメンタルコンパイルとリンク、コンパイル済みヘッダを含みます。

役に立ちましたか?

解決

は、誰もがこの使用パターンに遭遇していませんか?私は奇妙なビルドエラーを取得し、さらに調査する前に、私は完全な再構築しないと、問題が消えます。

このそれ自体では、リリース前に再構築フルを行うには良い十分な理由であると私には思える。

あなたがテストにオーバー問題なく完了したインクリメンタルビルドを回すことをいとわないかどうか、好みの問題だと思います。

他のヒント

一部のビルドシステムは、ビルド結果に対するソースファイルのファイルの日付をチェックすることで動作します。だから、例えば、あなたならば破ることができますソース管理から、以前のファイルを復元します。以前のファイルは、以前のビルド製品よりも変更日付を持つことになり、その製品が再構築されることはありません。それは最終ビルドであれば、これらのエラーを防ぐために、あなたは完全なビルドを行う必要があります。あなたがが開発している一方で、構築する増分はもちろん、はるかに効率的です。

編集:そしてもちろん、やってフルもインクリメンタルビルドシステムでのバグの可能性からあなたを保護し再構築

基本的な問題は、コンパイル環境(コマンドラインフラグ、使用可能なライブラリ、そしておそらくいくつかのブラックマジック)に依存しているということで、それらが同じ条件で行われている場合ので、2つのコンパイルは、同じ結果になります。テストと展開のためには、環境が可能な限り制御されていることを確認すると、あなたは奇妙なコードによる奇抜な行動を取得されていません。半分はまだ古いコードを使用しようとしている、半分はありません - あなたは、システムライブラリをアップデート半分のファイルを再コンパイルする場合の良い例です。完璧な世界では、これはすぐに出て、エラーやない問題が発生することはありますが、悲しいことに、時にはそれらのどちらが起こるのいずれか。その結果、完全な再コンパイルを行うと、千鳥ビルドプロセスに関連する問題の多くを回避できます。

私は間違いなくそれをお勧めします。私は、依存関係チェッカーは、変更されたコードにいくつかの依存関係をピックアップして失敗する大規模なVisual C ++溶液で多くの機会に見てきました。この変更は、非常に奇妙なことが起こることを始めることができるオブジェクトのサイズに影響するヘッダファイルにあるとき。 私は、依存関係チェッカーは、VS 2008で良くなったと確信していますが、私はまだリリースビルドのためにそれを信用しないでしょう。

最大の理由のない船舶は、段階的にリンクバイナリが一部の最適化は無効になります。リンカー残パディングと機能するもので置き換えて、次の増分している。この追膨張のバイナリー.もありますのでジャンプとしても、変更、メモリアクセスパターンを引き起こすということが判明別ページングおよび/またはキャッシュのヒント.古いバージョンの機能が継続居住の実行可能なものになれます。このことにもつながるバイナリの膨張と遅くなります。まずは使用できませんのリンク時のコード生成とタリンク逃してしまうより最適化.

だをデバッグの構築を試験機でしょうか。がリリース候補として実装されるべきであるから放出モードで、好ましくは、専用のビルドマシンで制御されます。

Visual Studioには問題は部分(増)、主題リンクエラー時から、とても役に立っていてしまいます。

長時間の作成、あるソリューション

  1. 利用並列コンパイルツールを活用しの想定マルチコアハードウェア
  2. 使用を構築す。何を使っているのは別のビルドマシンは、CruiseControl設定を行うフルリメイク時から。の"公式"にリリースするために、試験チーム、および、その後、お客様には常に、ビルドマシンからではなく、開発環境です。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top