よくある質問

このセクションではよくある質問とその回答をご紹介します。回答が見つからない、もっと詳しい情報を知りたいなどご要望は [email protected] までお寄せください。できる限り早急にお答えいたします。
ナレッジベースもあわせてご参照ください。

IncrediBuild のインストール方法や使い方について教えてください。

ローカルマシンへ IncrediBuild をインストールする場合の一般的な手順と使い方を動画で解説しています。わずか 10 分で貴重な時間を節約しましょう!

ライセンス条項に同意して Agent と Coordinator の両方を選択します。バックアップ Coordinator のインストールは不要です。インストール フォルダ、ポート、キャッシュファイルのサイズは既定値で進めます。IncrediBuild アイコンの隣に ! マークが表示される場合はCoordinator ライセンス ファイル (Web サイトでの登録完了後に送信) の読み込みが必要です。ライセンス ファイルをクリックして確認メッセージをお待ちください。Coordinator と Agent をマシンにインストールします。次の動画で使用方法をご確認ください。

IncrediBuild 上でどのような依存関係が作成されますか? IncrediBuild をインストールしたマシンで Visual Studio のビルドコマンドを使用できますか?

IncrediBuild がインストールされているかどうかに関係なく Visual Studio をご利用になれます。これは IncrediBuild を使わない状態でもビルドが可能ということです。ビルドスクリプトを使用する場合は VC のコマンドライン ビルドツールを IncrediBuild のものに置き換える必要があります。

IncrediBuild を使う際に C++ プロジェクトの変更は必要ですか?

いいえ。IncrediBuild は Visual Studio でビルド可能なあらゆる C/C++ プロジェクトをビルドできます。

IncrediBuild をインストールすると Visual Studio の環境はどのように変わりますか?

ビルド、リビルド、消去、バッチ ビルドなどの IncrediBuild メニュー/ツールバーや現在のビルドを停止などのコマンドが利用可能になります。これらを Visual Studio の代わりに使用するだけです。ビルド時の出力は [Build Monitor] ディスプレイ (環境に付属) に表示さます。ビルドモニターではビルド出力の他にもビルド ステータスバー (進行状況を表示) などの他の便利な機能もご利用になれます。
以下はビルドモニターの例です。

コマンドラインやビルドスクリプトから IncrediBuild を使用できますか?

はい。コンパイルのための豊富なコマンドライン インターフェイスを用意しています。msbuild.exe/devenv.exe の実行スクリプトに簡単に統合できます。BuildConsole.exe は devenv/msbuild のコマンドライン構文をサポートしているので、通常はスクリプト内の実行ファイル名を置き換えるだけです。

Visual Studio プロジェクトのビルドではどのような処理が分散されますか?

C/C++ のコンパイルと MIDL ステップが分散されます。他にも Dev Tools Interfaces ソリューションを使用してカスタム ビルドステップ、ビルドイベント (プレビルド、プレリンク、ポストビルド)、カスタムルールで実行するファイルを分散することができます。

C++ プロジェクトのコンパイルで IncrediBuild の効果を知るにはどうすればいいですか?

実際に試してみるのが一番ですが、一般的に数ファイル程度のプロジェクトではビルド時間が 10 ~ 30% 程度、インクリメンタル ビルドが 10 ~ 75% 短縮されます (再コンパイルが必要なファイル数による)。

IncrediBuild は大規模なビルド向けに設計されているため、プロジェクトのサイズが大きいほど高速化を実感できます。

IncrediBuild はどのようなファイル形式を入力として受け付けますか?

次のファイル形式に対応しています。Microsoft Visual C++ 2010、2012、2013、2015、2017: vcxproj ファイルおよび .sln ファイル、MSVC 2008/2005/.NET: .vcxproj ファイルおよび .sln ファイル、インテル® C++ コンパイラ: .icproj ファイル、eMbedded Visual C++ 4.0: .vcpファイル、Microsoft Visual C++ 6.0: .dsp  / .dsw ファイル

IncrediBuild がコンパイルやリンクプロセスを変更することで、ビルドの出力に問題が生じることがありますか?

いいえ。IncrediBuild はすべてのビルドステップ (コンパイル、リンクなど) で同じ実行ファイルを使用します。IncrediBuild はコンパイラではありません。コンパイラをより効率的に使用するためのツールです。

「Predictive Excution (予測実行)」機能により依存するプロジェクトの一部を同時に実行し、処理をさらに最大 10 ~ 15% 高速化できます。依存関係に不要なファイルを同時にビルドするため、依存関係が壊れることはありません。

分散してコンパイルすることで、他のユーザーのマシン速度が低下することはありますか?

IncrediBuild Agent はインストールされているマシンの使用状況に応じて動作が自動的に調整されます。デフォルトでは Agent がコンパイルを実行する優先度はシステム内の他のプロセスよりも低く設定されおり、オペレーティングシステム (OS) が IncrediBuild に割り当てる CPU リソースはユーザーや OS のプロセスに割り当てるものよりも少なくなります。PC が使用されていない場合は、IncrediBuild にリソースを最大限に割り当て、PC が使用中の場合は Agent の活動レベルは低いまま維持されます。通常は自分のマシンに IncrediBuild Agent がインストールされていると感じることさえありません。

IncrediBuild をインストールするためのソフトウェア / ハードウェアのシステム要件を教えてください。

IncrediBuild は Windows XP、Server 2003、Vista、Windows 7/8.1/10 で、TCP/IP ベースのネットワークに対応しています。Agent を Visual Studio のビルドで使用する場合の要件は次の通りです。Microsoft Visual C++ 2013、2012、2010、2008、2005、.NET、6.0 (Visual Studio Express にはアドオンできませんが、コマンド ラインから使用可能)。Helper Agent (「パッシブ」リソースとしてのみ使用され、ビルドを開始しない Agent) は特別なソフトウェアは不要です。

ハードウェアの必要最低要件は次の通りです。Intel Core i3、4GB RAM、1000Mbps ネットワーク接続。

IncrediBuild が帯域幅をすべて使い果たすことはありませんか?

いいえ。ネットワークのトラフィックを最小限に抑えるために、キャッシュや圧縮などでネットワークの最適化を行っています。標準的なネットワークでは、複数のコンパイルが行われている場合でもまったく問題ありません。

ワークステーションの構成が違います。ユーザーごとにオペレーティング システム (OS)、Visual Studio のバージョン、サービスパック、DLL バージョンが違っても問題ありませんか?

リモート Agent 上でビルドを実行する際にはオリジナルのビルドマシンをコピーした「仮想環境」の下ですべてが行われます。つまり、コンパイルで使用される実行ファイルはビルドマシンのものです。リモート Agent にそれらのファイルがなくても (何もない Windows マシンでも) 問題ありません。

IncrediBuild のインストール フォルダに「File Cache」とい名前の大きなフォルダがあります。

このフォルダには分散ビルドを高速化するためにリモート Agent から転送されたソースファイルがキャッシュされています。すべてのソースツリーとシステム インクルード ファイルを保管するため。十分な大きさが必要です。フォルダのサイズと場所は Agent Settings ダイアログと Coordinator Monitor から設定できます。ソースツリーをすべて保管するには十分なサイズが必要ですが、リモート Agent でのインデックスの作成を素早く行い、ビルドを高速にするために、最大値に設定するのではなくできるだけ小さい値に設定することをお勧めします。

ビルドが IncrediBuild を使って実行されたかどうかを確認するためのスクリプトを教えてください。

IncrediBuild は自動的に XoreaxBuildContext (ビルド実行時の値は [1]) と呼ばれる環境変数を定義します。カスタム ビルドステップでこの環境変数を照会して、IncrediBuild によりビルドが実行されているかどうかを確認できます。

他にもビルドを開始するマシン上に buildSystem.exe が、ビルド中のリモートマシン上に BuildHelper.exe プロセスが作成されます。

IncrediBuild はファイルを移動してプログラムを実行するためにネットワーク プロトコルを使用していると思いますが、どのようにしてセキュリティ上の脅威から保護していますか?

IncrediBuild のライセンス構成により、システムに参加する「許可済み」の Agent 一覧が作成され、作業グループ外から侵入を阻止します。他にもネットワーク プロトコルを内部の脅威から可能な限り保護するための対応が多く施されています。万が一システムの悪用を阻止できない場合でもファイルを保護できるように、クローズドな仮想環境下でファイルを扱います。これに加えて、組織内ですでにご利用のセキュリティインフラ (ファイアウォールなど) による保護も受けます。

IncrediBuild はプリコンパイル済みのヘッダーに対応していますか? コンパイル済みのヘッダーについて教えてください。

はい。IncrediBuild はプリコンパイル済みヘッダーを使用したプロジェクトに対応しており、PCH を使用してプロジェクトを高速化します。「自動」PCH を IncrediBuild で使用するとビルドが遅くなることが知られているので、標準のヘッダーベースの PCH に切り替えるか PCH を完全に無効にすることをお勧めします。

Visual Studio のブラウザー情報機能を使用していますが、IncrediBuild でもこの機能を使用できますか?

はい。ブラウザー情報ファイルの作成に対応しています。

プロジェクトにカスタム、プレビルド、プレリンク、ポストビルド ステップが含まれているものがあります。IncrediBuild で処理できますか?

はい。カスタム ビルドステップとカスタム ビルドイベントは、デフォルトではビルドを行うマシンのローカル環境で実行されます (複数の CPU を持つマシンでは各 CPU で複数のステップを同時に実行できます)。

カスタムステップのプロパティを調整してリモートで実行するようにステップを構成することもできます。次のリンクをご参照ください。

http://www.incredibuild.co.jp/webhelp/#method_1.html

プロジェクトで COM オブジェクトを使用しているため、コンパイルに DLL とタイプライブラリが必要となるファイルがあります。IncrediBuild ではどのように処理されますか?

コンパイルはすべてビルドマシン環境をコピーした仮想のミラー環境内で行われます。これは、リモートマシン上にあるファイルや DLL に関係なく、元のマシン上の DLL とファイルに基づいてコンパイル出力が生成されることを意味します。

いくつかのソースファイルがネットワークドライブ上にあります。IncrediBuild の動作とパフォーマンスにどのような影響がありますか?

IncrediBuild はネットワーク上のファイルにアクセスできるだけでなく、より効果的に動作します。IncrediBuild のキャッシュ メカニズムにより、ネットワーク上にあるファイルを含むプロジェクトをコンパイルする場合、Visual Studio やその他のビルドツールに比べて優れた結果を期待できます。

ビルドに参加するマシンはどのように決まりますか?

IncrediBuild Coordinator は、Agent の CPU 性能、現在のアクティビティレベルやコンパイルで Agent に影響を与えるその他の要因を把握しています。これらの要因は、メイン Coordinator monitor の [Performance Rating] でご覧になれます (View -> Columns -> Hardware -> Performance Rating)。

ビルドが始まると Coordinator はその時点で利用できる最も効果的な Agent にタスクをアサインします。これは Agent の空き状況に応じて変更する場合があります。たとえば、リモートビルドに参加しているマシンで CPU に負荷がかかる作業が開始された場合、そのマシン上で実行されているコンパイルは即座に中止されて別のマシンにアサインされます。

複数の Agent が同時にビルドを開始するとどうなりますか?

この場合、IncrediBuild Coordinator はそれぞれのビルドにシステム内で使用可能な CPU が同程度になるようにアサインします。

ビルド中に Coordinator が利用できなくなるとどうなりますか?

Coordinator はリモートでコンパイルを行うためのリソースを管理しますが、ビルドに不可欠なわけではありません。ビルドの開始後に何らかの理由で Coordinator が利用できなくなると、その時点でのアサイン状況が維持されたたまま、Coordinator が復旧するまでスタンドアロン モードでビルドを続行します。メインの Coordinator が利用できなくなった場合に自動的に作動する「Backup Coordinator」をインストールして可用性を確保することもできます。
Backup Coordinator は (メインの Coordinator が復旧するまでの) リソースの管理のみを行います。ライセンス パッケージの割り当て、ライセンスの管理などはできません。

リモートマシンとしてコンパイル中の Agent が突然使用できなくなった場合はどうなりますか?

使用できなくなった場合や負荷がかかりすぎてコンパイルに支障が出る場合は Agent は動作を停止し、コンパイル中のファイルは別の Agent に再度アサインされてビルドが継続されます。

コードの最適化のために Visual Studio 以外のコンパイラー / リンカーを使用していますが、プロジェクトの開発とビルドには Visual Studio を使用しています。IncrediBuild はどんなコンパイラーをサポートしていますか?

現在サポートしているコンパイラーは次の通りです。Microsoft cl.exe、Csc、Intel コンパイラー、Nvcc、tcc、dcc、Xbox、PS4、Nintendo プラットフォーム。随時追加でコンパイラーをサポートしていますので、定期的に次のリンクをチェックしてください。
http://www.incredibuild.co.jp/webhelp/#IB_for_Make_and_Build_Tools1.html

また、XGE インタフェース ソリューションをさまざまなビルドツールやスクリプトで使用して、未対応のコンパイラーを実行することもできます。

IncrediBuild でどのようなプログラミング言語を高速化できますか?

現在 C/C++ および C# コードを高速化できます。

IncrediBuild はマルチスレッディングをサポートしていますか?

サポートしていますが高速化はできません。IncrediBuild はコード / ツールのマルチプロセス機能を中継して複数のコアで同時に処理を行うためです。これにより IncrediBuild はグリッド全体を活用してビルドにすべてのコアを使用することができます。

IncrediBuild でサポートしているゲームミング プラットフォームを教えてください。

次のゲーミング プラットフォームに対応しています。Xbox 360 / One、Nintendo 3DS / Switch / Wii U、Play Station。

スタンドアロンのマシンでも IncrediBuild を使用できますか?

はい。複数のコアがあるマシンでは、それぞれのコアを活用してコンパイル速度を大きく向上させることができます。さらに、C++ ビルド向けにデフォルトで有効になっている追加のアクセラレーション機能 (予測実行機能) により、スタンドアロン モードでも通常の Visual Studio ビルドよりも高速に処理できます。

プロジェクトやコンパイルに IncrediBuild を使いたいのですが、インストール後に PC 間で手動でファイルをコピーしたり、DLL ファイルを登録するなど事前に作業は必要ですか?

いいえ。IncrediBuild は仮想環境内でファイルの同期を行うので、コンピューターのファイル システムが変更されたり、DLL ファイルがインストールされることはありません。

IncrediBuild 環境では何台の Agent を扱えますか?

1 台の IncrediBuild Coordinator でおよそ 500 台の Agent を効率良く扱うことができます。もっとたくさんの Agent が必要な場合は、環境をいくつかのワークグループに分けて、各ワークグループごとに Coordinator を割り当てることをお勧めします。

Coordinator と同じマシンに Agent をインストールすることはできますか?

もちろんです。一般的な利用方法です。Coordinator はあまりリソースを必要としない軽量なコンポーネントです。ただし、性能が極端に低いマシンへのインストールは避けてください。また、グリッドリソースを管理するため、Coordinator をインストールしたマシンは常にオンラインにしておく必要があります。

IncrediBuild で C# プロジェクトをビルドできますか?

はい。Visual Studio 2010 以降で C# のアクセラレーションをサポートしています。C# の場合、プロジェクトレベル (1 C# プロジェクト = 1 IncrediBuild タスク) で分散が行われるため、ソリューションで最大限の効果を得られます。

IncrediBuild で VB プロジェクトをビルドできますか?

はい。ローカルマシン上でのみ VB プロジェクトをビルドできます。ソリューションに対応していますが、パフォーマンスが向上するのは C/C++、C# プロジェクトのセクションのみとなります。

IncrediBuild で makefile ベースのプロジェクトをビルドできますか?

Make やビルドツールで実行されるさまざまなビルドを分散できます。次のリンクで対応ツールの一覧をご覧になれます。here

コード解析ツールを使用しています。IncrediBuild で高速化できますか?

はい。現在 Klockworks および Coverity に対応しています。

どちらの場合も、IncrediBuild は Klocworks / Coverity が解析フェーズで使用される通常のビルドの一部として build trace (ビルドトレース) ファイル (JSON 形式) を生成します。Klocworks では解析フェーズ自体もスピードアップできます。

詳細についてはサポートチームにお問い合わせください。
[email protected]

Visual Studio ビルドの過程でリモートマシンで生成されたファイルをローカルマシンに同期する必要があります。どうすればよいですか?

ローカル (Initiator) マシンに受け渡すファイルを定義することができます。

設定方法は次の通りです。

1.Coordinator マシン上で IncrediBuild のトレイアイコンを右クリックして、[Coordinator Monitor] を選択します。

2.Coordinator Monitor に Agent の一覧が表示されます。

3.Iniciator Agent を右クリックして [Set Registry Value…] を選択します。

4.[Value Category] が [Builder] になっていることを確認します。

5.[Name] に次の文字列を入力します。AdditionalOutputMasks

6.[Data] に Initiator に受け渡したいファイルを入力します。例: すべての .txt ファイルを Iniciator に受け渡したい場合は「*.txt」と入力。

特殊な要件があるためローカルマシン上でのビルドしなければならないプロジェクトがあります。ローカルでビルドするプロジェクトはどのように設定できますか?

Visual Studio でプロジェクトをローカルで右クリックするだけでプロジェクトをマークするには、[プロパティ] > [構成プロパティ] > [C/C++] > [プリプロセッサ] > [プリプロセッサの定義] を選択して次の文字列を追加します。

IB_RunLocal
VS2008 以前のバージョンでは IncrediBuild メニューの [Solution Settings] を使用します。

ファイルごとに設定したい場合は、ローカルでのみビルドする必要があるファイルの [プリプロセッサの定義] に IB_RunLocal を追加します。

Visual Studio 以外の環境 (MSBuild.exe のみ) で IncrediBuild を使用するにはどうすればよいですか?

ご利用の環境に無料の Microsoft MSBuild をセットアップして、IncrediBuild なしで MSBuild ビルドコマンドが動作することを確認してから次のサンプル ビルド コマンドを使用します。

BuildConsole.exe MySln.sln /rebuild /cfg=”Debug|Win32″ /UseMSBuild /msbuildargs=”/myarg1 /myarg2’’

コマンドラインとスイッチについては次のリンクをご覧ください。
http://www.incredibuild.co.jp/webhelp/#BuildConsole.html

トラブルシューティング

IncrediBuild を実行中にプロジェクトの中間フォルダに「vc [NUMBER] _ib_X.pdb」([NUMBER] には VC のバージョン - 90、100、120 などが、X には 0、1、2 などの値が入る)のファイルが作成されますが、これは何ですか?

これは正常な動作です。2012 年以前にリリースされた Visual Studio ではビルドに参加している Agent ごとに個別のデバッグ情報と .idb/.pdb ファイルが作成されて、中間フォルダに格納されます。それ以降のバージョンではリモートマシンのコアごとに同様のファイルが作成されます。たとえば、8 コアのリモート Agent がある場合はすべてのコアに一時ファイルが作成されます。

Visual Studio で作成された OBJ/EXE ファイルが IncrediBuild で作成されたものと違うのはなぜですか?

デバッグ情報の配置、バイナリファイルのタイムスタンプ、リンクフェーズでの OBJ ファイルの順序などにより、IncrediBuild と Visual Studio の出力ファイルにはいくつかの違いがあります。これは正常であり、アプリケーションの動作に影響はありません。

他のビルドに参加しないように Agent を一時的に無効にするにはどうすれば良いですか?

IncrediBuild トレイアイコンを右クリックして [Disable Agent] を選択します。この操作は Coordinator からリモートで行うこともできます。

Visual Studio の [ツール] > [オプション] メニューの [ディレクトリ] タブでディレクトリの一部を変更しましたが、IncrediBuild に反映されてないようです。大丈夫ですか?

[ディレクトリ] タブで設定したディレクトリは該当のマシンでコンパイルするプロジェクトすべてに影響を与えるため、システム全体を設定する場合にのみ使用する必要があります。プロジェクト レベルで設定を行う場合は [プロジェクト設定] ダイアログで行います。Visual Studio では閉じる際に新規・変更されたディレクトリ情報が保存されるため、IncrediBuild で新しいシステム ディレクトリを認識させるには情報を変更した後に Visual Studio を再起動する必要があります。

コマンドラインから BuildConsole を実行しようとしていますが 「BuildConsole' is not recognized as an internal or external command, operable program or batch file.」というエラーが表示されます。なぜですか?

IncrediBuild のインストール フォルダに PATH 環境変数が設定されていません。PATH 環境変数に BuildConsole.exe の正しいパスが含まれていることを確認してください。

プロジェクトのビルドに自分のマシンの Agent しか参加しません!

いくつかの要因が考えられます。

1. ご利用のマシン上の Agent が Coordinator に登録されていない。システム管理者に問い合わせて、自身のライセンスが購入済みの Agent リストに追加されているかどうかを確認してください。

2. ビルドに必要なソリューションが Agent に割り当てられていない。ビルドシステム パッケージの割り当ては Coordinator アプリケーションから行います。システム管理者に問い合わせて、必要なソリューションがマシンに割り当てられているか確認してください。

3. プロジェクトのファイルが小さすぎるため Agent 間で分散されない。
ビルドモニターを開いて [View] > [View System Graph] にアクセスして特定の情報を表示するグラフを選択します。[Ready Tasks] を選択して、任意のタイムライン上にマウスを移動すると、並列処理で実行可能なタスク量を確認できます。これがローカルコアより少ない場合は動作は正常です。

4.「Agent Settings」ダイアログの Coordinator 名またはポートが間違っている。ビルドモニターの [Message] タブで警告がないかどうかを確認します。

5. 実行中のマシンがシャットダウンされている、ネットワークから切断されている、Coordinator のサービスが利用できない場合は、 Coordinator はご利用になれません。ビルドモニターの [Message] タブで警告の有無を確認します。

6. マシンがネットワークから切断されている。ネットワークケーブルと設定を確認してください。

7. ネットワークのセキュリティ制限により、マシンから Coordinator またはネットワーク内の Agent への TCP / IP アクセスがブロックされている。

8. ネットワーク制限によりリモート Agent に接続できない。ビルドモニターの [Message] タブに警告メッセージ 「Failed to connect…port 31105」が表示されている場合はシステム管理者にリモートポートがブロックされている理由を問い合わせてください。

9. IncrediBuild の試用期間が終了した。

IncrediBuild のトレイアイコンが表示されません。どうすれば再表示できますか?

[スタート] メニューから [Xoreax IncrediBuild] ファイル > [IncrediBuild Agent Tray-Icon] の順に選択して再表示できます。IncrediBuild トレイアイコンを常時表示するには「Agent Settings」ダイアログの [Tray-Icon] ページで [Enable tray-icon display on system start-up] のチェックボックスをオンにしてください。

Visual Studio に IncrediBuild メニューが見当たりません。どうすればよいですか?

「Agent Settings」ダイアログで [Visual Studio Add-in] > [General] の順にクリックして復元します。Visual Studio が閉じていることを確認してから [Restore Add-in] で該当の Visual Studio のバージョンのチェックボックスをオンにします。

IncrediBuild を使ってビルドする際にブラウザー情報が作成されません。Visual Studio では作成されますがなぜですか?

IncrediBuild はグローバル設定でブラウザー情報の設定を行います。「Agent Settings」で [Visual Studio builds] > [Browse Information] の順にクリックしてください。プロジェクトのビルド時に「Batch Build」ダイアログから、プロジェクトごとに設定を上書きすることもできます。

コンパイルの際にヘッダファイル/タイプ ライブラリ ファイルに「No such file or directory」というエラーが表示されます。

該当のファイルが、カスタム ビルドステップまたはソリューション内の別プロジェクトの MIDL ステップによって作成された場合はプロジェクト間の依存関係の定義が欠落している可能性があります。

詳細は「依存関係の設定」 (「高度な使い方」) をご覧ください。:

http://www.incredibuild.co.jp/webhelp/#advanced_dep.html

コンパイルで異なる / 旧バージョンのヘッダー ファイル/タイプ ライブラリ ファイルが使用されているようです。

「コンパイルの際にヘッダファイル/タイプ ライブラリ ファイルに「No such file or directory」というエラーが表示されます」の回答をご覧ください。

IncrediBuild でビルドした後に Visual Studio でインクリメンタル ビルドを実行すると次のような警告が表示されます。「warning C4652: compiler option 'Generate Browser Info' inconsistent with precompiled header; current command-line option will override that defined in the precompiled header」何が原因ですか?

ブラウザー情報を使用する場合:

1.ブラウザー情報を作成するようにプロジェクト構成を設定します (Visual Studio の [プロジェクトの設定] ダイアログの [C/C++] タブと [ブラウザ情報] タブの [ブラウザ情報を生成する] のチェックボックスをオンにします)。

2.この構成のブラウザー情報を作成するには「Agent Settings」ダイアログから [Visual Studio Builds] >[Browse Information] で [Always] または [According to ‘Generate browse info’ project setting] を選択するか、または一致する検索フレーズを使用します。

3.プロジェクトをリビルドします。

ブラウザー情報を使用しない場合:

1.ブラウザー情報を作成しないようにプロジェクト構成を変更します。
2.この構成のブラウザー情報を作成しないには「Agent Settings」ダイアログから [Visual Studio Builds] >[Browse Information] で [Never] または [According to ‘Generate browse info’ project setting] を選択するか、または一致する検索フレーズを使用します。

IncrediBuild Agent が起動しません。なぜですか?

次の手順で原因を特定してください。
1.システムトレイの IncrediBuild Agent アイコンにエラーが表示されている場合は、アイコンをクリックすると IncrediBuild Agent の最新のエラー情報が表示されます。

2.Windows サービスを開いて「IncrediBuild Agent」を手動で起動します。権限の問題で起動できない場合はシステム管理者に問い合わせてください。この方法でのみ起動可能な場合は、セキュリティ上の制限により Windows の起動時に IncrediBuild のサービスが開始できないように設定されている可能性があります。システム管理者に問い合わせてください。

ビルド実行時に一部の Agent はコンパイルを開始しますが、コンパイルが完了する前に停止してファイルのコンパイルバーが消えます。なぜですか?

いくつかの理由があります。
1. ネットワーク接続の問題 – ビルドモニターの [メッセージ] タブをチェックして、この Remote Agent に関連する接続メッセージを探してください。ほとんどの場合、イニシエーター マシンはネットワーク上の問題でリモート マシンとの接続が切断されます。
2. プロセス間の意図的な競争 – IncrediBuild はデフォルトで、ローカルマシンがビジー状態ではない場合にリモート マシンとローカルマシンの両方で同じプロセスを実行することがあります。これは最適化のための機能で、タスクを最初に完了したマシンの勝ちとなります。リモートマシンが頻繁にタスクをキャンセルしている場合、この機能を無効にすることができます。「Agent Settings」で [Initiator] > [General] で [Restart remote processes on local machine when possible] のチェックボックスをオフにしてください。

永久/テンポラリー IncrediBuild ライセンスをインストールしましたが、ビルド時にビルドがスタンドアロン モードで実行されるというメッセージが表示されます。なぜですか?

Agent が未登録、または Agent に必要なビルド システム ソリューションが割り当てられていません。次の手順に従ってください。

1. メインの Coordinator マシンで Coordinator Monitor を開きます。

2. Agent 一覧から該当する Agent を探します。

3. [Status] 列に [Unsubscribed] と表示されている場合は Agent を右クリックして [Subscribe] を選択します。[Subscribe] がグレーアウトしている場合はライセンスの登録 Agent が上限に達しているので、他の Agent を登録解除する必要があります。

4. [Packages] 列に「Core」パッケージのうち 1 つしか表示されていない (4 Cores) またはプロジェクトのビルドに必要なソリューションと別のパッケージが表示されている (Visual Studio C++ をビルドする場合に「Make & Build Tools」を持っている) 場合は Agent を右クリックして、[Allocate Package] を選択し、適切なビルド システム ソリューション パッケージを Agent に割り当てます。

複数の CPU / コアをサポートする永久 / テンポラリー IncrediBuild ライセンスをインストールしましたが、ビルドで使用されるプロセッサは 1 つのみです。どうすればよいですか?

「Core」パッケージのどれかが欠けている可能性があります。次の手順に従ってください。

1. Coordinator Monitor を開きます。

2. Agent 一覧から該当する Agent を探します。

3. Agent を右クリックして [Allocate Package] を選択し、[Core] パッケージ (「4 Core」パッケージ) のいずれかを選択します。グレーアウトしている場合はライセンスの登録 Agent が上限に達しているので、他の Agent を登録解除する必要があります。

Agent が使用されていないにもかかわらず Coordinator で利用可能な CPU が 90%-100% と表示されます。

スクリーンセーバーの起動中、IncrediBuild はスクリーンセーバーが CPU を使用してもマシンが利用可能であると判断します。そのマシンの Agent がコンパイルに使用されると、コンパイラは優先度の高いプロセスとして実行するのでスクリーンセーバーよりも CPU が多くなります。

ビルド中にコンパイルバーを確認すると同じファイルが 2 つのマシンでコンパイルされているようです。これは正常ですか?

はい、正常です。低速なリモート Agent のせいでビルドが遅ならないように、ローカルマシン上でファイルのコンパイルを重複して行うことがあります。この場合同じファイルが 2 回コンパイルされたように見えます。

この設定は「Agent Settings」から [Initiator] > [General] の順にクリックして [restart remote processes on local machine when possible] で変更できます。機能を無効にするとパフォーマンスが低下することがあります。

IncrediBuild と Visual Studio の /MP オプションの違いは何ですか?

IncrediBuild を /MP オプションで使うとさまざまなメリットが得られます。

参照 MSDN: https://msdn.microsoft.com/en-us/library/bb385193.aspx
ここでは IncrediBuild と対照的に /MP は次のオプションや言語機能と互換性がありません。#Import プリプロセッサ ディレクティブ、/E、/EP、/Gm、/showIncludes、/Yc。

異なる CPP ファイルに異なるコンパイラ ディレクティブがある場合、/MP は並列に実行しませんが、IncrediBuild は違います。

IncrediBuild はプロジェクト間に依存関係が存在するシナリオにより適しています。プロジェクトB がプロジェクトA に依存する場合、IncrediBuild は可能であれば両方を同時にコンパイルします。
IncrediBuild には複数の構成を並列に実行できるバッチビルド機能があります (並列コンパイルに対応するようビルドが適切に構成されている場合)。

Rem IncrediBuild_AllowOverlap ディレクティブをカスタム ビルドステップやビルドイベントに追加すると、カスタムステップやビルドイベントと同時に次のビルドタスクに進むように IncrediBuild に指示が出されます。
詳しくは次のリンクをご覧ください。
http://www.incredibuild.co.jp/webhelp/#method_1.html

IncrediBuildは、開発者に特定の条件下で並行して実行できるようカスタム ビルドツールやビルドルールの実行を設定する機能を提供します。これは Visual Studio のデフォルト動作ではシーケンシャルにしか実行できません。たとえば、Qt のビルドではコード生成のカスタム ビルドツールである moc ステップを、シーケンシャルではなく並列に実行できます。

この機能によりコンパイルのスループットが大幅に向上します。これを IncrediBuld の分散コンピューティング テクノロジーと組み合わせて並列処理のためにプロセスをリモート CPU リソースに分散することで、ビルド時間を最大 90% 以上も短縮することができます。

IncrediBuild でビルドしたときに、コード内部の問題でビルドが失敗すると、IncrediBuild の出力にエラーが表示されません。なぜですか?

VS 2010 以降のバージョンでビルドしている場合、この動作は「順不同」でタスクをスポーンすることでスループットを向上させる「予測実行」機能に関連しています。順不同でビルドが行われるため、出力の一部が失敗した時点で標準出力に達していない可能性があります。ビルドモニターの [Projects] タブで該当プロジェクトの出力を表示すると、[CL Preview] セクションで実際のエラー確認できます。

「通常」の出力を表示するには、次の手順でこの機能を無効にします。

イニシエーター マシンで「Agent Settings」を開き、[Visual Studio Builds] > [Advanced] の「Predictive Execution」セクションで [Enhance throughput using out-of-order tasks spawning] のチェックボックスをオフにします。

Chromium ベースのプロジェクトで IncrediBuild を使用しています。Chromium には GN というビルドファイルジェネレーターがあり、*.gn ファイルが変更された場合に ninja ファイルを自動で再作成します。 Incredibuild から ninja を実行した場合、再作成ステップとして GN を実行できます。この場合、GN は修正済みの tmp パスを使っていくつかのビルド ファイルを再作成し、その後、ninja を再起動すると、該当の tmp ディレクトリが利用できなくなっているため、ファイルのビルドやリンクに失敗することがあります。

IncrediBuild はビルドごとに独自の一時ファイルとともに tmp ディレクトリに一時サブフォルダを作成します。

2 つのビルドがある場合、1 つは最初のサブフォルダに保存される特定の出力を作成し、2 つ目のビルドではこれらのファイルを使用する必要があります。IncrediBuild ば各ビルドの後に過去の tmp サブフォルダを削除するため 2 つ目のビルドは失敗します。

Tmp サブフォルダを削除しない場合は HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Xoreax\IncrediBuild\Builder 下に LeaveTempDirs という名前のレジストリを作成して、値を 1 に設定する必要があります。

これにより、IncrediBuild のビルド後に tmp フォルダ下のサブフォルダは削除されないため、tmp フォルダのサイズが維持されます。

Visual Studio 2013 で IncrediBuild を使ってビルドをすると、次のメッセージが表示されます。 Microsoft Visual Studio 2013 Version 12.0.31101.0. Copyright (C) Microsoft Corp. All rights reserved. Some errors occurred during migration.For more information, see the migration report

これは、IncrediBuild の有無に関係なく、Visual Studio 2012/2013 で発生することがあります。
この問題を解決する手順は次の通りです。

1. Visual Studio 2013/2012 の devenv.exe が格納されたディレクトリで CMD を開きます。

2. 次のコマンドを実行します。devenv /resetuserdata general

Visual Studio の設定がリセットされて、問題が解決します。

Visual Studio 2008 以前

デバック情報の一部が失われたようです。これは IncrediBuild と関係がありますか (MSVC 6.0-specific)?

リンカーの「Separate Types」オプションに関係している可能性があります。MSVC の [設定] ダイアログの [リンカ] ページにある [Separate Types] オプションは、プロジェクト全体に対して単一の PDB ファイルを作成するのではなく、コンパイラで生成された PDB にデバッグ情報を残すようにリンカーに指示します。このオプションが IncrediBuild で使用された場合、ビルドに参加する Agent ごとに個別の PDB ファイルが作成されます。この場合、スクリプトでコピーされたデバッグ情報ファイルを使用していると一部の PDB ファイルがコピーされずデバッグ情報が失われることがあります。プロジェクトのリンカ オプションで [Separate types] をオフにすることをお勧めします (「Agent Settings」ダイアログで Build-in override オプションを使用することもできます)。これにより、プロジェクト用に単一の PDB ファイルが作成されます。また、関連するスクリプトを修正することでも対応できます。

[Edit & Continue] が動作しません。なぜですか?

IncrediBuild は特定の Visual Studio バージョンのみ [Edit & Continue] をサポートしていますが、この機能で使用するファイルを「Solution Settings」 ダイアログであらかじめ指定しておく必要があります。詳しくは次のリンク先をご覧ください。

http://www.incredibuild.co.jp/webhelp/#solution_settings_edit_and_continue.html

次の警告が表示されます。 「IncrediBuild: build system warning: #import directives in the precompiled header should use the no_implementation attribute.See FAQ section in the documentation for more details.」 なぜですか?

IncrediBuildは、「no_implementation」キーワードのないプリコンパイル済みのヘッダーソース ファイルで見つかった #import ディレクティブを通知します。これには 2 つの理由があります。

1. ソースファイルに該当の PCH によって生成された .TLI ファイルが含まれていると、「ファイルが見つかりません」というコンパイルエラーが発生することがあるため。#Import を PCH ファイルで「no_implementation」フラグとともに以下のように使用することでこれを解決できます。

2. このキーワードを使用しないと、PCH ファイルのサイズが大きくなり、コンパイルが遅くなる場合があるため。以下は MSDN ライブラリの「#import」トピックからの引用です。
「implementation_only 属性は、プリコンパイルされたヘッダー (PCH) ファイルの外部に実装を維持する方法として、no_implementation 属性と共に使用することが想定されています。 no_implementation 属性を含む #import ステートメントは、PCH の作成に使用されるソース領域に配置されます。生成される PCH は、多数のソース ファイルによって使用されます。これによって、implementation_only 属性を含む #import ステートメントが PCH 領域の外部で使用されます。いずれかのソース ファイルでこのステートメントを 1 回だけ使用する必要があります。 これによって、各ソース ファイルについて追加の再コンパイルを行う必要なく、すべてのラッパー メンバー関数が生成されます。」

次の警告が表示されます。 「One or more source files use automatic precompiled headers.This setting is not recommended and may degrade build performanceSee FAQ section in documentation for more details.」 なぜですか?

プロジェクトに「自動」プリコンパイル済みヘッダーが使用されています。IncrediBuild で使用する場合、この設定はビルドのパフォーマンスに悪影響を及ぼすため推奨されていません。標準 (ヘッダーベース) のプリコンパイル済みヘッダーを使用するか、プリコンパイル済みヘッダーの使用を完全にオフにしてください。

注意: Visual Studio 6.0 および .NET 2003 のみに関連する問題です。

注意: このセクションでは Windows 版 IncrediBuild に関する質問のみを取り扱っています。
Linux 版 IncrediBuild に関する質問は [email protected] までお問い合わせください。

このセクションではよくある質問とその回答をご紹介します。お探しの質問が見つからない場合やもっと詳しく知りたい場合は [email protected] までお問い合わせください。できる限り早急にお答えいたします。

技術的な質問やトラブルシューティングは「技術に関するよくある質問」をご覧ください。


IncrediBuild の「ライセンス」、「Coordinator (コーディネーター)」、「Agent (エージェント)」、「メンテナンス」、「ソリューション」とは何ですか?

「ライセンス」は同じネットワーク上で実行され、プロセスを加速するために IncrediBuild ソフトウェアを使用するグループを指します。新しくライセンスを注文する場合は「Agent」と「ソリューション」を購入することになります。既存のライセンスを更新する場合は Agent のメンテナンスとソリューション費用が発生します。
「Coordinator」はライセンスの管理、タスク割り当て、共有リソースの同期を行う IncrediBuild のサーバー コンポーネントです。ライセンスの初回購入時に無料で提供されます。
「Agent」は登録されたユーザーです。IncrediBuild を実行するマシンにはコア数に対応した Agent がインストールされている必要があります。Agent がインストールされたマシンは、IncrediBuild のワークグループの一員として、処理の高速化に参加できます。Agent ごとに毎年メンテナンス費用が必要となります。
「メンテナンス」は Agent ごとに毎年必要となる保守費用です。これには新しいバージョン、アップデート、修正へのアクセスやメールによるテクニカル サポートが含まれます。 Agent の使用にはメンテナンスが必要となります。
「ソリューション」はさまざまな種類のビルドや処理の開始に必要なプロダクトです。ビルドや処理を開始する Agent には処理に応じた「ソリューション」が」必要です。

既存のライセンスにプロダクトを追加購入することと、新しいライセンスを購入することに違いはありますか?

既存のライセンスにプロダクトを購入した場合、同ライセンスですでに動作している IncrediBuild のマシングループにプロダクトが追加 / アップグレードされます。新しいライセンスを購入した場合、既存のワークグループやライセンスとは別の新たなグループが作成されます (通常は別のネットワーク)。

IncrediBuild を適切に動作させるためにマシンに必要なものを教えてください。

次が必要です。
a. コア数に対応した Agent。4 / 8 / 16 / 24 / 32 / 48 / 64 コアのオプションがあります。論理コア数に合わせて購入してください。たとえば、物理コアが 4 / 8 スレッドの CPU を搭載したマシンでは、IncrediBuild の高速化を処理能力をフル活用するには「最大 8 コアを並列実行できる Agent が必要です。
b. 有効なメンテナンス。Agent は有効なメンテナンスを保持するライセンス下で使用する必要があります。
c. ソリューション。高速化への参加に加えて処理を開始する必要がある場合は Agent の他に関連するソリューションが必要となります。

新しいバージョンの Visual Studio で IncrediBuild を使うには何を購入すればよいですか?

Visual Studio の新バージョンに合わせて IncrediBuild の対応バージョンがリリースされます。C/C++ ソリューションをお持ちでメンテナンスが有効な場合は、最新バージョンにアップグレードしてご利用になれます。

ライセンスのメンテナスは有効で、C/C++ ソリューションを使用しています。同じ IncrediBuild バージョンを異なるバージョン間の Visual Studio で使用できますか?

はい。さまざまな Visual Studio バージョンで異なる Agent を使用できます。実行中の IncrediBuild のバージョンがご利用の Visual Studio にすべて対応していれば、バージョンが異なる Agent が連携して動作します。

ライセンス購入後に Agent を別のマシンに移せますか?

はい。ライセンスのメンテナンスが有効であれば可能です。利用中の Agent の「登録解除」と新しいマシンへの「登録」はIncrediBuild Coordinator アプリケーションから行ってください。

FreeDev ライセンスで IncrediBuild を 30 日間試しました。もう数日試してから購入するかどうかを判断したいのですが。

延長できます。 [email protected]までご連絡ください。

IncrediBuild を購入しました。サポートやアップデートを受けることはできますか?

IncrediBuild ライセンスの初回購入には 12 ヶ月間のメンテナンスが付属します。これにはアップデートとサポートが含まれます。

どのようにプロダクトを受け取ることができますか? また出荷条件はありますか?

購入が完了すると新しいライセンス ファイルがメールで届きます。製品自体の出荷はありません。クレジットカードでお支払いの場合、最終更新日まで使用可能な最新の「標準」ライセンス ファイルがすぐに届きます。銀行振込でお支払いの場合、注文を受けてから 3 営業日以内に請求書とテンポラリー ライセンス ファイルを送信します。着金確認後に (支払い期限は 30 日以内)、最新の標準ライセンス ファイルまたは最終更新日まで使用可能なライセンス ファイルが届きます。

ライセンスを複数のネットワークに分割できますか? たとえば、1 つのネットワーク上の 10 人のユーザーではなく、2 つのネットワーク上で動作する 5 つの Agent グループのように既存のライセンスを複数のネットワークに分割することは可能ですか?

ライセンスとメンテナンスが有効であれば分割することができます。分割後に新しいライセンス ファイルを送信します。ライセンスの分割を希望される場合は [email protected] までお問い合わせください。

ライセンスを更新し忘れて期限が切れてしまいました。今後も IncrediBuild を使いたいのですが、どうすればよいですか?

ライセンスの有効期限が切れてから 3 ヶ月以内であれば通常通りに更新することができます。3 ヶ月上経過している場合は更新の規定は保証されません。詳細については [email protected] までお問い合わせください。

他に購入に関する質問があります。どこに問い合わせればよいですか?

[email protected] までお問い合わせください。できるだけ迅速な回答を心がけています。