|
よくある質問を答えをまとめした。
ここに記載されていないご質問や、答えの内容が不十分な場合はご遠慮なく support@xoreax.co.jp
までご連絡下さい。
ワールドワイド共通のナレッジベース(英語)
Knowledge Base もご利用可能です。
重要なお知らせ: このセクションで問題が解決しない場合ワールドワイド共通の
ナレッジベース(英語) を利用する事が可能です。
年間保守により、日本語OS 固有の問題も含めて日本語でのサポートも利用可能です。問い合わせアドレスsupport@xoreax.co.jp
Q&A
Pricing & Licensing
Q: Coordinator と Agent の適正本数が判りません。
A: Coordinator の本数は購入・運用・年間保守の単位となり、通常購入部署単位となります。
それぞれの Coordinator は分割されたグループとして管理され、個々の Coordinator に所属する Agent 間で分散処理を行います。
年間保守契約中のお客様はいつでも Coordinator を分割する事可能です。但し、分割してしまうと IncrediBuild で使えるプロセッシングパワーも分割されるので、分散効率が低下する可能性があります。
Agent は大きく別けて 2つのタイプに分類されます。"Helper Agent" と "Builder Agent" の 2つです。
"Helper Agent" は分散対象となるジョブ(ビルド等)を発行する事は出来ません。分散処理として発行されたジョブの分散タスクを実行し、IncrediBuild 環境に CPU リソースを提供する Agent です。
"Builder Agent" は "Helper Agent" の機能を含み更に分散対象となるジョブを発行する事が出来ます。
"Builder Agent" には Visual Studio Build Extension か XGE Build Extension またはその両方が必要になります。
Visual Studio Build Extension は Visual Studio を使って分散コンパイルを実行するために必要なオプションです。
XGE Build Extension は make ツールなどを分散処理するために必要なオプションです。
全ての Agent には Multiple CPU/Core Extension を追加する事が可能です。
分散対象となるジョブが発行された時、2つの CPU コアを持っているマシンに Multiple CPU/Core Extension を追加していると、
CPU コア毎に分散タスクを並列に実行する事が可能です。
上記に基づいて IncrediBuild 環境の最大構成は次のように確認できます。
分散実行環境を構成するマシン数 → IncrediBuild Agent
Visual Studio を使ってビルドを行うマシン数 → Visual Studio Build Extension
XGE (Xoreax Grid Engine) を使って分散処理を実行するマシン数 → XGE Build Extension
複数の CPU コアを持つマシン数 → Multiple CPU/Core Extension
購入時の構成が不明な場合はいつでも sales@xoreax.co.jp までお問い合わせ下さい。
Q: サイトライセンス契約はありますか?
A: 個別に承っております。セールスコンタクト までご連絡下さい。
Q: 既に所有しているライセンスに Agent を追加出来ますか?
A: セールスコンタクト に Registered Name(通常ライセンスファイル名と同じ)をご連絡下さい。
現在のライセンスステータスを確認した上で、追加購入についてご連絡致します。
いつでも Agent の追加は可能ですが、年間保守が失効している場合は利用出来る IncrediBuild のバージョンに制限がある場合があります。
Q: Helper (Agent) とは何ですか?
A: Helper Agent とは IncrediBuild 環境で分散タスクを実行し、CPU リソースを提供するだけの Agent です。
分散対象となるジョブを発行する事は出来ません。通常開発に使用しないマシンや PC サーバ等にインストールして分散効率を向上させる目的で導入します。
IncrediBuild のインストール以外に必要な設定やインストールしなければならないサードパーティー製のソフトウェア等はありません。
Q: Coordinator に金額が記載されていません。
A: Coordinator は無償提供されます。年間保守は Agent 数により計算され、購入時には Agent とそのオプションとなる各 Extension によって購入金額が決定します。
Q: Visual Studio .NET を使用していた時、IncrediBuild を使っていました。Visual Studio 2008 でも使えますか?
A: 使用可能です。IncrediBuild v2.50 より使用出来る Visual Studio のバージョンの制限は撤廃されました。
年間保守期限内であればいつでも最新の IncrediBuild を使用する事が可能であり、全ての Visual Studio の分散コンパイルが可能です。
年間保守が失効している場合は セールスコンタクト までご連絡下さい。
失効中の年間保守をリニューアルする為のお見積りを致します。
Q: Agent マシンを移動する事が可能ですか?
A: 可能です。Coordinator にて無効にする Agent を "unsubscribed" した後に、新しくセットアップした Agent を "subscribed" する事で実現出来ます。
Q: 30日の評価期間が終了してしまいましたが、評価を延長する事は可能ですか?
A: セールスコンタクト までご連絡下さい。2週間の延長ライセンスを発行致します。
Q: Multiple CPU/Core Extension のライセンスモデルは?
A: IncrediBuld はマルチコアを有効に使う事が可能です。
マシン毎にカウントするライセンスモデルであり、Multiple CPU/Core Extension を適用したマシンのローカルコアは全て有効に使う事が可能です。
(コア数には関係ありません)
Q: 購入済みの IncrediBuild をアップグレードする事は出来ますか?
A: 可能です。国内では「初年度保守契約」と「年間保守契約」をご案内しており、
本サービスには日本語OS独自の問題を含む日本語サポートサービスと製品の無償アップグレードが含まれております。
Q: プロダクト納入までの時間は?
A: 販売については代理店様を通して行っております。ライセンスファイル発行依頼を受けてから発行するまでは 3営業日以内となっております。
Q: IncrediBuild を利用中です、ライセンスを分割して別の場所でも使用したいのですが?
A: 可能です。ライセンスの分割サービスは年間保守期間内のお客様に無償にて提供させて頂いております。
詳細なリクエストを sales@xoreax.com までご連絡下さい。
Q: 購入についてここに記載されている以外の質問をしたいのですが?
A: sales@xoreax.co.jp までご連絡下さい。
技術的な問い合わせ
Q: 社内のネットワーク環境で評価する手順は?
A: IncrediBuld を導入するのに必要な手間は 15分程度のインストールだけです。
ダウンロードサイトからセットアッププログラムをダウンロードします。
- Coordinator をインストールします
- ネットワーク内で Coordinator マシンを選択します
- 選択したマシンでセットアッププログラムを実行し、Coordinator をインストールします
- Agent をインストールします
- 分散処理に参加する全てのマシンでセットアッププログラムを実行して Agent をインストールします
- インストール中に Coordinator マシンを入力する項目がありますので、Coordinator をインストールしたマシンのホスト名を入力します
評価版としてインストールする場合は Agent インストール時には自動的に選択可能な Extension が選択された状態でインストールされます。
製品運用を開始する場合はインストール済みの Coordinator マシン上でライセンスファイルをダブルクリックする事でライセンスファイルの適用が完了します。
Q: IncrediBuild をインストールする事で何かツール間の依存関係が構築されますか?
Visual Studio の通常のビルドは IncrediBuild をインストールすると使えなくなるのですか?
A: IncrediBuild がインストールされているかどうかに関わらず、Visual Studio の全てのコマンド、操作は有効です。
Q: IncrediBuild を使用するために Visual Studio のプロジェクトに変更を加える必要はありますか?
A: いいえ、IncrediBuild はどんな C/C++ プロジェクトも Visual Studio から正しくビルドする事が可能です。
但し、複数のプロジェクトを含むソリューションにおいて、設定すべきプロジェクト間の依存関係を設定していない場合は正しい順序でビルドするためにプロジェクトの依存関係を設定する必要があるかも知れません。
これはソリューションに対してい正しい設定を行うという意味であり、リミテーションではありません。
Q: IncrediBuild のインストール後 Visual Studio 環境はどのように変更されますか?
A: IncrediBuild メニューが追加され、「ビルド」「リビルド」「クリーン」「バッチビルド」「ビルドの中止」といったコマンドが追加されています。
Visual Studio のコマンドの代わりに、IncrediBuild メニューからこれらのコマンドを呼び出すだけで分散処理が可能となります。
ビルド開始後は、出力ペインの代わりに IncrediBuld の出力ペインがアクティブになります。
これは Visual Studio 用の IncrediBuild Build Monitor であり、ビルドプログレスなど便利な出力機能を備えた出力画面です。
Q: コマンドラインやビルドスクリプトから IncrediBuild を利用出来ますか?
A: はい。msdev.exe / devenv.exe といったコマンドからビルドアップするための機能を提供するプログラムが提供されています。
IncrediBuild 用のこれらのコマンドラインの代わりは BuildConsole.exe です。
このコマンドは上記のコマンドと同じ構文をサポートしているので、実行コマンド名を BuildConsole.exe に変更するだけです。
Q: Visual Studio ビルドのどんな処理を分散実行するのですか?
A: C/C++ コンパイル処理と MIDL ステップです。カスタムビルドステップに記述した任意のコマンドを分散するには XGE Build Extension を使って分散させる事が可能です。
Q: 私の C++ プロジェクトでどれだけ効果がでるか確かめるにはどうしたら良いですか?
A: もっとも簡単な方法は試してみる事です。
経験上、小さいサイズのファイルが膨大にプロジェクトに含まれている場合、フルビルドの時間を 10% から 30% に減少させる事が可能であり、更新ビルドを 30% から 75% に減少させる事が可能です。
(更新ビルドの削減率は依存関係上、再ビルドが必要なファイルがどの程度存在するかによって変わります)
Q: IncrediBuild はどんなファイルタイプを入力出来ますか?
A: IncrediBuild は Microsoft Visual C++ 6.0 プロジェクト .dsp/.dsw ファイル、
Visual Studio 2008/2005/.NET のプロジェクト .vcproj/.sln ファイル、Intel C/C++ Optimizing Compiler .icproj ファイル、および Embedded VC 4.0 プロジェクト .vcw/.vcp ファイルに対応しています。
Q: IncrediBuild によるコンパイル、リンクは生成されるバイナリに影響を与えますか?
A: いいえ。IncrediBuild はコンパイルやリンク等すべてのビルドプロセスに対して Visual Studio のコマンドを使っています。
IncrediBuild は今あなたが使っているコンパイラやリンカを効果的に使うための環境を提供しているのです。
Q: IncrediBuild で分散タスクを実行中の他のユーザのマシンの処理を低下させてしまうのではないでしょうか?
A: IncrediBuild によって起動される分散タスクは他のプロセスより低いプライオリティとして実行されます。
また、IncrediBuild 環境ではマシンの負荷に応じた分散処理の割り当てが行われており、Agent マシンが Idle 状態であれば CPU を有効に使い、負荷が高ければ分散タスクは割り当てられません。
通常、IncrediBuild Agent をインストールしたマシンで作業を行っていても、他のマシンの分散処理を自分が行っている事に気がつきません。
Q: IncrediBuild をインストールするために必要なソフトウェア・ハードウェア構成は?
A: IncrediBuild は Windows2000, XP, 2003, Vista OS マシンが TCP/IP 接続されているネットワーク環境であればインストール可能です。
Microsoft Visual C++ 6.0 以降 .NET / 2005 / 2008 のすべて(Express Edition 以外)バージョンをサポートしています。
最低構成は 10Mbps ネットワークカード、Pentium 400Mhz CPU、64MB RAMとなり、依存するソフトウェアはありません。
Q: IncrediBuild がネットワーク帯域を使いきってしまう事はありませんか?
A: いいえ。IncrediBuild はネットワークキャッシュ、圧縮技術に重点をおいて開発してきました。
オフィス内の LAN 環境ではコンパイル中でさえ、ネットワーク負荷を感じさせません。
Q: ネットワーク内のマシンは同一環境ではなく、Visual Studio のバージョンやインストール構成も異なりますが、IncrediBuild を使う事は出来ますか?
A: はい、使用可能です。
IncrediBuild は他のマシン上で分散タスクを実行する時はオリジナルマシンの環境のコピーとして機能する「仮想環境」を使って実行します。
すなわち、ビルドを開始したマシンと同じ実行ファイルを使用する事になります。事実、リモートマシンにはコンパイラが存在する必要すらありません。
Q: IncrediBuild のインストールディレクトリに "File Cache" という大きなディスクサイズを占めるフォルダがありました。これは何ですか?
A: 分散実行に必要なファイルのキャッシュです。分散実行速度の向上のために存在するファイルです。
サイズは Agent Settings および Coordinator から変更する事が可能です。
Q: スクリプトが IncrediBuild によって実行されている事を確認するには?
A: IncrediBuild がプロセスを実行する場合は環境変数を設定します。
環境変数「IncrediBuildContext」の値を「1」に設定して実行しますので、この環境変数を確認する事で IncrediBuild で実行されているか確認出来ます。
Q: IncrediBuild の導入によるセキュリティ上のリスクにどんな対応を行っていますか?
A: IncrediBuild のライセンス機構は全ての Agent の認証機能を保存しており、他のマシンから IncrediBuild を誤用する事が出来ないよう設計されています。
また、分散プロセスの実行は完全に閉じた「仮想環境」で実行されているため、直接リモートホストのファイルシステムにアクセスする事は出来ません。
特定ポートを使った通信については可能な限り安全なプロトコルを実装するよう注意してきました。
Q: IncrediBuild はプリコンパイル済みヘッダに対応していますか?プリコンパイル済みヘッダを使う際に何か注意する事はありますか?
A: はい、プリコンパイル済みヘッダに対応しています。但し、/Yx(自動的にプリコンパイル済みヘッダを作成する)を選択した場合、ビルドパフォーマンスが落ちる事が知られています。
IncrediBuild では、ヘッダベースのプリコンパイル済みヘッダを利用するか、プリコンパイル済ヘッダを使用しない事を推奨します。
Q: Visual Studio の「ブラウザ情報」を使用出来ますか?
A: はい。IncrediBuild はブラウザ情報の作成をサポートしています。
Q: Visual Studio の「ビルド前のイベント」や「リンク後のイベント」に記述したイベントは実行されますか?
A: はい。IncrediBuild を使っても正しくカスタムビルドステップが実行されます。実行はローカルマシンで行われます。
Q: COMオブジェクトを使ったプロジェクトで DLL やタイプライブラリがコンパイルに要求される場合 IncrediBuild はこれらをどのように扱いますか?
A: ビルドを開始したマシン環境のコピーをリモートマシン(Agent)の仮想環境に構築して実行します。
つまり、リモートマシン(Agent)に DLL 等が存在するかどうかに関わらず、ビルドを開始したマシン上のファイルを参照します。
Q: ソースファイルがネットワーク上にある場合、IncrediBuild の動作に何か影響を与えますか?
A: IncrediBuild はネットワーク上のソースファイルを参照するビルドにも対応しています。
実際にソースファイルがネットワーク上にある場合、高速なネットワークキャッシュを通して通信するため、より良いパフォーマンスが発揮できる場合があります。
Q: IncrediBuild ではどの Agent がビルドに参加するかをどのように決定していますか?
A: Coordinator の管理の下で決定します。Coordinator は全ての Agent の有用性(CPU パワー、メモリや通信速度など)を管理しています。
ビルドが開始されると、Coordinator はビルドに最も適した Agent をその時の Agent の負荷に応じて決定し分散コンパイルを割り当てます。
その有用性(現在の CPU 負荷など)は実行中変化する事があります。
例えば、分散コンパイルが開始された後にローカルで負荷が高いプロセスが実行されると、その Agent ではコンパイルを中止し、他の Agent に割り当てるといった事が行われます。
Q: 複数の Agent がビルドを開始するとどうなりますか?
A: それぞれのビルド処理が等しく高いパフォーマンスが得られるよう平等に分散割り当てが行われます。
Q: Coordinator がビルド中に応答不能になるとどうなりますか?
A: Coordinator は分散割り当てを管理していますが、ビルドのための重要なリソースを管理している訳ではありません。
従って、それぞれの Agent は実行中の分散コンパイルを最後まで実行します。
その後はビルドを開始したマシンは Standalone モードでビルドを継続します。つまり、1台でコンパイルを実行します。
分散実行環境を堅固に保つために「Backup Coordinator」をセットアップする事が可能です。
「Backup Coordinator」は Coordinator がダウンした場合、Coordinator の代わりに分散実行環境の管理を引き継ぎます。
Coordinator が復旧すると、自動的に通常状態に戻ります。
Q: 分散タスクを実行していた Agent が応答不能となるとどうなりますか?
A: 分散タスク実行中の Agent が応答不能になったり、突然負荷が高くなった場合は単に分散タスクの実行をキャンセルした状態と同義になります。
途中まで実行した結果は破棄され、キャンセルされたタスクは別の Agent に再割り当てされて全体のビルドを続行されます。
Q: Visual Studio を使っていますが、Visual Studio 付属のC/C++コンパイラではない別のコンパイラを使っています。
A: IncrediBuild は現在「cl.exe (全ての Visual Studio, eVC, Xbox と Xbox 360)コンパイラ」と「Intel optimizing C/C++ Compiler]
をサポートしています。その他のコンパイラは将来追加される予定です。
XGE Interfaces (XGE Build Extension Package) では現時点で様々なビルドツールやスクリプト処理の分散実行もサポートしています。
Q: IncrediBuild でサポートしているプログラミング言語は何ですか?
A: Visual Studio Build Extension の機能でサポートしているのは Visual Studio の C and C++ プロジェクトです。
Q: マルチプロセッサマシンに対応していますか?
A: はい。Multiple CPU/Core Extension により、CPUコア毎に分散タスクを割り当てる事が可能になります。
Q: Microsoft Visual C++ .NETをサポートしていますか?
A: はい。.NET 2002 / 2003 ともにサポートしています。
Q: Microsoft Visual C++ 2005 をサポートしていますか?
A: はい。サポートしています。
Q: Microsoft Visual C++ 2008 をサポートしていますか?
A: はい。サポートしています。
Q: XBOX プロジェクトをサポートしていますか?
A: はい。サポートしています。
Q: XBOX 360 プロジェクトをサポートしていますか?
A: はい。サポートしています。
Q: スタンドアロンマシンでも IncrediBuild を使えますか?
A: はい。例えば Multple CPU/Core Extension の機能を使えばビルドの高速化が可能になります。
Q: ビルドのために手動でライブラリファイルや DLL ファイルをコピーするような設定は必要ですか?
A: いいえ。IncrediBuild は自動的に必要なファイルの同期をリモートマシンの仮想環境に対して実現しています。
IncrediBuild をインストールした後に設定や登録が必要な DLL などはありません。
Q: 何台の Agent が IncrediBuild 環境に参加可能ですか?
A: 1台の Coordinator で 500台までサポートしています。効率的な分散効果を得るために 400台を超えたら Coordinator を分割する事を推奨致します。
Q: Coordinator を Agent の両方を同じマシンにインストールしても良いですか?
A: はい。問題ありません。
Q: IncrediBuild を C# や VB プロジェクトに使用できますか?
A: はい。 C# や VB プロジェクトと混合した C/C++ プロジェクトは "devenv.exe /make" を使ってビルドする事が可能です。
但し、分散コンパイル可能なプロジェクトは C/C++ だけなので、パフォーマンスの向上は C/C++ プロジェクトに含まれるファイルの分散効果分となります。
Q: IncrediBuild を make ベースのプロジェクトに使用できますか?
A: XGE Interfaces (XGE Build Extension) を使って分散処理する事が可能です。(v3.0 以降の IncrediBuild)
トラブルシューティング
Q: "vcx0_ib_"(x は "6", "7" または "8")という接頭語がついたファイルを多数中間ディレクトリに見つけました。これは何ですか?
A: これは正しい動作です。IncrediBuild は分散コンパイルの実行時に分割されたデバッグ情報(.idb ファイル)を生成します。これらは中間ディレクトリに保存されます。
Q: IncrediBuild を使った時と使わない時で OBJ / EXE ファイルを比べると違いがありました。何故ですか?
A: デバッグ情報の配置情報、タイムスタンプおよびリンク時の obj ファイル要求に従ったリンク順に違いが発生する可能性があります。
これらはアプリケーションの動作には影響を与えません。
Q: 一時的に分散コンパイルに参加したくない(CPU を使われたくない)場合はどうすれば良いですか?
A: IncrediBuild トレーアイコンを右クリックして「Disable Agent」を選択する事で実現出来ます。この設定は Coordinator からも設定可能です。
Q: Visual Studio 6.0 で「ツール」→「オプション」から「ディレクトリ」項目を変更しましたが、反映されません。これはバグですか?
A: この変更はシステム全体に対して行うオプション設定です。通常プロジェクト毎の設定であればプロジェクトの設定で行います。
システム全体に対して行う本変更は Visual Studio を一度終了すると有効になります。IncrediBuild の Add-in ではこの有効化の操作を内部的に行う事が出来ないので、一度 Visual Studio を再起動する必要があります。
Q: BuildConsole.exe を使用しようとした所、有効な実行ファイルが見つからない旨のエラーが発生して使用できませんでした。何が問題ですか?
A: 環境変数 PATH に IncrediBuild インストールディレクトリが設定されている必要があります。
また、BuildConsole.exe は Visual Studio がインストールされているシステムでのみ使用可能です。
Q: Visual C++ 6.0 でデバッグ情報が欠落しているようです。何か制限があるのでしょうか?
A: リンカオプションに起因する問題の可能性があります。
Visual Studio 6.0 において /pdbtype:sept を指定しているとリンカはデバッグ情報を唯一の pdb ファイルにまとめて保存します。
しかし、コンパイルを分散した場合、pdb ファイルのファイル毎に分散される事になります。
結果として、分散先で生成された pdb ファイルの情報が欠落する可能性があります。
解決方法は /pdbtype:sept を使用しない事です。もっとも簡単な設定は IncrediBuild の「Agent Settings」でこの設定を上書きする事です。
「Agent Settings」→「Visual Studio Build」→「Advanced」の「Link Option (Visual Studio)」にある次の設定「Don't separate types when linking (override project settings)」のチェックを入れる事で実現出来ます。
Q: ビルドを開始しましたが、私のマシンだけしかビルドに参加しません。
A: この現象には幾つか確認しなければならない項目があります。
- あなたのマシンは Coordinator から認証されていません。Coordinator Monitor であなたのマシンを探して「Subscribe」されているか確認して下さい。「Unsubscribe」となっている場合は右クリックして現れるメニューから「Subscribe」を選択します。この作業は Coordinator でしか実行できません。
- あなたのマシンにはビルドの実行に必要な Extension Package が割り当てられていません。Coordinator Monitor であなたのマシンを探して Packages の内容を確認してください。Coordinator Monitor 上であなたのマシンの Packages に「Visual Studio C/C++」も「XGE」も割り当てられてない場合は分散処理を発行する事が出来ません。右クリックして現れるメニューから「Allocate Package」を選択して必要な Extension を割り当ててください。この操作は Coordinator でしか実行できません。
- あなたのプロジェクトがあまりに小さいため分散する必要がありません。
- あなたのマシンの「Agent Settings」に設定されている「Coordinator」または「Port」の入力が不正確です。
- Coordinator が現在アクティブではありません。ネットワーク内の Coordinator にアクセスできるか確認して下さい。
- あなたのマシンがネットワークに接続されていません。ネットワークケーブルを確認し、Coordinator マシンにアクセスできる事を確認して下さい。
- ネットワークセキュリティ上の制限のため、Agent 間の通信で使用するポートもしくは Agent - Coordinator 間の通信で使用するポートの TCP/IP がブロックされています。「Agent Settings」から確認できるポートを確認の上、ネットワーク管理者に相談して下さい。
- IncrediBuild の試用期間が満了しました。
Q: IncrediBuild のトレーアイコンが見つかりません。どうすれば修復できますか?
A: スタートメニュー内のプログラムから「Xoreax IncrediBuild」を見つけて「IncrediBuild Agent Tray-Icon」を起動します。
常に表示するように設定する場合は「Agent Settings」の「Tray-Icon」ページで「System Start-Up」の設定をオンにします。
Q: Agent を無効(Disable Agent)に設定しましたが、cl.exe が起動しています。何故ですか?
A: 幾つかのバージョンの WindowsNT ではスクリーンセーバーが起動していないのに、スクリーンセーバーが起動していると誤って認識される場合があります。
この現象が発生するマシンでは IncrediBuild のスクリーンセーバー動作時の動作設定との組み合わせで悪影響が出る場合があります。
「Agent Settings」の「Agent」→「Preference」ページの次のオプションを確認して下さい。
- Enable screen saver detection
このオプションが設定されている場合、スクリーンセーバーが動作し、それが CPU 負荷となっている場合、IncrediBuild による分散プロセスのプライオリティを高くして起動します。スクリーンセーバーが解除されるとプロセスのプライオリティは低く変更されます。
- Enable Agent while screen saver is running
このオプションが設定されている場合、「Disable Agent」と設定されていても、スクリーンセーバーが起動されると自動的に「Enable Agent」となり、分散実行に参加します。スクリーンセーバーが解除されると再び「Disable Agent」となります。
スクリーンセーバーが起動していないのにも関わらずスクリーンセーバーが起動していると検出された場合に上記の設定がオンになっていると勝手に「Enable Agent」に変わったり、CPU 負荷によりレスポンスが悪くなる場合があります。
この現象が改善されない場合は上記 2つのオプションをオフに設定してください。
Q: Visual Studio のメニュー・ツールバーに IncrediBuild のメニューが見つかりません。
A: Agent Settings の Visual Studio Add-In → General を選択し、 Add-In の Restore を行って下さい。
Visual C++ 6.0 ではユーザ毎に Add-In を設定する必要があります。またツールバーだけが非表示になっている場合があります。
この場合は Visual Studio でツールバーを表示する事で解決します。
Q: IncrediBuild を使った時に「ブラウズ情報」が作成されませんでした、Visual Studio でのビルドでは「ブラウズ情報」が作成されます。
A: IncrediBuild では「ブラウズ情報」の生成に関してグローバルな設定を持ちます。この設定により、より細やかな動作の変更が可能になります。
Agent 毎に設定するグローバルな設定「Agent Settings」→「Visual Studio Builds」→「Browse Information」の設定について説明します。
- 「Always generate .SBR files according to project settings」
Visual Studio 6.0 のプロパティ内の「C/C++」ページ、Visual Studio .NETの「C/C++」→「ブラウザ情報」ページの設定に従って .sbr ファイルを生成します。
これはファイル毎のブラウザ情報ファイル(.sbr)です。プロジェクトのブラウザ情報(.bsc)の生成については次のオプションによって決定します。
このチェックがオフの場合は、プロジェクトの設定に関わらず、次のオプションによってブラウザ情報を生成するか決定します。
(Visual Studio の設定と異なる場合があります)
- 「According to 'Generate browse info' project setting」
Visual Studio の設定に従ってブラウザ情報を作成します。Visual Studio の設定によって IncrediBuild の設定が変わるという事ではなく、Visual Studio の設定に基づいて動作する事になります。
- 「Never」
ブラウザ情報を作成しません。(デフォルトで選択されています)
- 「Always」
常にブラウザ情報を作成します。
- 「Only for configrations containing words」
「,」もしくは「;」区切りでコンフィグレーション名を入力する事が出来ます。該当するコンフィグレーションでビルドする際はブラウザ情報が生成されます。
Q: "IncrediBuild: build system warning: #import directives in the precompiled header should use the no_implementation attribute. See FAQ section in documentation for more details." というウォーニングが表示されました。これは何ですか?
A: プリコンパイル済みヘッダ内で #import ディレクティブを no_implementation なしで検出しました。
これは次の 2つも問題を発生させる可能性があります。
- "file not found" によるエラーを引き起こす場合があります。これは no_implementation フラグを追加する事で解決するかも知れません。
- no_implementation を指定していない場合大きなサイズのプリコンパイル済みヘッダを生成する事になり、ビルドに時間が掛ってしまうかも知れません。
Q: "No such file or directory" というエラーが出力されビルドが出来ません。
A: この問題がどのステップで起きているか確認して下さい。もしこれがカスタムビルドステップもしくは他のプロジェクトの MIDL ステップで起きている場合設定されている依存関係に問題があるかも知れません。
カスタムビルドステップ、およびビルドイベントが実行されるタイミングによって問題が起きている場合は依存関係を確認の上必要に応じてコマンドラインに「rem IncrediBuild_RunFirst」あるいは「rem IncrediBuild_AllowOverlap」を追加して下さい。
「IncrediBuild_RunFirst」は実行ステップ内で先に実行する事を明示し、「IncrediBuild_AllowOverlap」は並列に実行可能である事を明示します。
Q: コンパイル時に異なる(前回コンパイル時の)ヘッダ、ライブラリを参照してるようです
A: コマンドの実行順に問題がある可能性があります。一つ上のFAQを参照して下さい。
Q: BuildMonitor のログを見ると既にコンパイル済みのログが出力されたりしているように見えます
A: IncrediBuild のログは異なるコンフィグレーションのログが雑多に混じらないようにバッファリングされています。
プロジェクト毎の進行を確認するには「ProjectView」を確認して下さい。
Q: 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" というウォーニングが出ました。これは何ですか?
A: Visual Studio のブラウザ情報出力設定と IncrediBuild のブラウザ情報出力設定が競合しています。
- ブラウザ情報を出力する場合
- Visual Studio のプロパティページを開き「ブラウザ情報」の設定と「C/C++」以下の「ブラウザ情報」の設定を有効にします。
- 「Agent Settings」→「Visual Studio Builds」→「Browse Information」の設定を変更します。"According to 'Generate browse info' project setting" または "Always" を選択します。
- プロジェクトをリビルドします。
- ブラウザ情報を出力しない場合
- Visual Studio のプロパティページを開き「ブラウザ情報」の設定と「C/C++」以下の「ブラウザ情報」の設定を無効にします。
- 「Agent Settings」→「Visual Studio Builds」→「Browse Information」の設定を変更します。"According to 'Generate browse info' project setting" または "Never" を選択します。
- プロジェクトをリビルドします。
Q: IncrediBuild を使ってビルドを開始する事ができません。
A: さまざまな理由が考えられます。基本的な設定やインストールに問題が無い場合次を確認して原因を特定します。
- IncrediBuild Tray-Icon をダブルクリックして前回使用時のログを確認し、原因の特定に役立てます。
- <OSインストールドライブ>/Windows/System32/ フォルダに存在する次のファイルを入れ替えます。
- perfc009.dat
- perfd009.dat
上記ファイルを正常動作しているマシンからコピーしてして入れ替えるか Windows の修復セットアップにより上記を修復します。
Q: いくつかの Agent で分散タスクが開始されますが、途中で中断されて Build Monitor のプログレスバーが消えてしまいます。
A: ネットワーク構成に誤りがある場合この現象が発生する事があります。
- ビルドを開始したマシンから問題のあるマシンへ ping コマンドのテストを実行します(IPアドレスを指定します)
- ビルドを開始したマシンから問題のあるマシンへ ping コマンドのテストを実行します(ホスト名を指定します)
- 問題のあるマシンからビルドを開始したマシンへ ping コマンドのテストを実行します(IPアドレスを指定します)
少なくともこの 3つの方法で ping の返答が得られる状態でなければいけません。
Q: "File includes the following header files that are also included by the precompiled header, and use the '#pragma once' directive.
This may cause interoperability problems when using IncrediBuild to build the precompiled-header and MSVC to build source files that use it, or vice versa.
Refer to the FAQ section in the documentation for more details and possible workarounds." というウォーニングが出ました。これは何ですか?
A: プリコンパイル済みヘッダに #include されており、かつそれが #pragma once を含んでいるヘッダを 1つ以上 #include しているソースがある場合これらのヘッダは #pragma once があるにも関わらず複数回 #include される場合があります。
この問題は次のケースで発生します。
- IncrediBuild で PCH(プリコンパイル済みヘッダ) を作成済みで Visual Studio 標準の更新ビルドを行った場合。
- Visual Studio のビルドメニューからのビルドによって PCH(プリコンパイル済みヘッダ) を作成済みで IncrediBuild の更新ビルドを行った場合。
この問題には次の 2つの解決方法があります。
- プリコンパイル済みヘッダで #include しているヘッダを直接ソースから #include しないでプリコンパイル済みヘッダを通して #include する。
- #pragma once の代わりに固有のプリプロセッサを使用する。
#ifndef __HEADER_NAME__
#define __HEADER_NAME__
<ヘッダファイルの内容>
Q: Coordinator マシンにライセンスファイルをインストールしたら Agent が Standalone モードで動作するという警告が出ました。何故ですか?
A: 30日間の無償評価期間では Extension パッケージが無制限に利用可能であり、インストールした全ての Agent で全ての Extension が利用可能な状態です。
ライセンスファイル適用後、Standalone モードになってしまった場合は次を確認して下さい。
- Coordinator マシンで Coordinator Monitor を開きます。
- 該当するマシンを探します。
- Status 表示が 'Unsubscribed' であった場合は右クリックしたメニューから 'Subscribe' に変更してください。
- Packages の表示が BuildHelper になっている場合は Extension が有効ではありません。この場合も右クリックしたメニューから 'Allocate Packages' を選択して Extension を有効にして下さい。
ライセンスに定義された数以上の Agent / Extension を有効にする事はできません。実際に参加させたくないマシンを 'Unsubscribed' / 'Deallocate Packages' にて解除してから行う必要があります。
Q: Multiple CPU/Core Extension を購入しましたが、マルチコアのマシンでも 1CPU しかビルドに参加しません。
A: Extension を有効にする必要があります。
- Coordinator マシンで Coordinator Monitor を開きます。
- 該当するマシンを探します。
- Packages の表示に Multiple CPU/Core が無い場合は右クリックしたメニューから Allocate Packages を選択して Multiple CPU/Core Extension を有効にしてください。
Q: "One or more source files use automatic precompiled headers. This setting is not recommended and may degrade build performance. See FAQ section in documentation for more details."
というウォーニングが出ました。これは何ですか?
A: Visual Studio .NET の一部のバージョンは「プリコンパイル済みヘッダを自動的に作成する」/Yx というオプションが存在しました。
このオプションは IncrediBuild の動作を著しく低下させる可能性がある為推奨されません。標準のヘッダソースのプリコンパイル済みヘッダを利用するか、プリコンパイル済みヘッダを使用しない設定に変更する事を推奨します。
Q: Coordinator 上で 90%-100% CPU available と表示されていますが、実際にはローカルで CPU が使用されているようです。
A: スクリーンセーバーが CPU に負荷を掛けている場合 IncrediBuild はその CPU 負荷は計算せず、利用可能と判断します。
Q: エディットアンドコンティニューの機能が使えません。何故ですか?
A: IncrediBuild は本機能をサポートしますが、事前に対象となるファイルを選択しなければなりません。
- Visual Studio に表示されている「IncrediBuild」メニューを選択します。
- Solution Settings ... を選択します。
- 左側のペインで設定を行うプロジェクトを選択します。
- 右側の「Edit&Continue」タブを選択します。
ここで選択したファイルはコンパイル時に分散されないので必要がないファイルを含めて全て選択するという方法は取らないで下さい。
Q: 同じファイルが 2つの Agent でコンパイルされているように見えます。この現象は正しいですか?
A: はい。これは正しい動作です。一時的に同じファイルは複数の Agent に割り当てられる可能性がありますが、処理が遅いと判断させた Agent 上では処理を中断するだけです。
|