自動化されたテストに関連するさまざまな指標を定量的に研究しています。Chrome には妥当なセットがあるようですので、自分のデータ セットに追加したいと思いました。Chrome のソース コードをダウンロードし、VisualStudio でビルドしようとしましたが、型が定義されていない、識別子が定義されていないなど、数百ものエラーが発生しました。Windows で Chrome をビルドできた人はいますか? 知っておくべき裏技はありますか?
2 に答える
Chromium 開発ページから:
コンパイルの失敗
異常なコンパイル エラーが発生した場合に考慮すべき一般的な事項:
- Visual Studio 2005 の SP1 があることを確認してください。これは必須です。本当。
- Chromium のビルド時に Visual Studio が間違った処理を実行し、偽のエラーでスタックすることがあります。1 人だけが失敗していて、他の人 (Buildbot を含む) が不満を持っていない場合は、これの良い兆候です。これを解決するには、次の手順を試してください。
- Visual Studio を閉じます。
- ツリーの先端に同期し、競合がないことを確認します (「svn st」は、変更したファイルの前に「C」を表示してはなりません)。
- 競合があった場合は、競合を解決してから再度同期してください。
- 出力ディレクトリ (chrome\Debug および chrome\Release) を手動で消去します。コマンド ラインを使用して、chrome ディレクトリから "erase /S /Q Debug Release" を使用してこれを行うか、"rm -rf Debug Release" を使用できます。 Unix ライクなツールがインストールされています。
- Visual Studio を再起動し、Chromium ソリューションを開きます。
- ソリューションを再構築します。
それでもうまくいかない場合は、このプロセスを繰り返してもおそらく役に立ちません。
chrome_kjs.sln 一時ファイルの問題
JavaScriptCore のビルド中に次のようなエラーが表示される場合:
3>Error in tempfile() using /tmp/dftables-XXXXXXXX.in: Parent directory (/tmp/) is not writable
3> at /cygdrive/c/b/slave/WEBKIT~1/build/webkit/third_party/JavaScriptCore/pcre/dftables line 236
3>make: *** [chartables.c] Error 255
...これは、Chromium ソースに含まれる Cygwin のインストールで、NT ACL を POSIX パーミッションにマッピングする際に問題が発生したためです。これは、Cygwin がそもそもパーミッションを把握できないディレクトリに Chromium がチェックアウトされた場合に発生するようです。おそらく、mkpasswd を実行する前にディレクトリが Cygwin 環境内から作成された場合です。その後、Cygwin は独自のアクセス制御を課しますが、これは不適切に制限されています。回避策として、次のいずれかを実行します。
third_party\cygwin\tmp の NT 権限を編集して、Everyone および machine\Users の変更および書き込みアクションを許可します。Cygwin はこれを理解することができます。または、
チェックアウトの何が問題だったのかを突き止め、再試行してください。Cygwin シェルではなく cmd からチェックアウトを実行してみてください。次に、Cygwin インストールでパーミッションが完全に空白になっていないことを確認してください。または、
Cygwin を使用するものを呼び出す前に、webkit\build\JavaScriptCore\prebuild.bat および webkit\build\WebCore\prebuild.bat を編集して次の行を含めることにより、Cygwin のアクセス制御をバイパスします (NT は引き続き有効です)。
set CYGWIN=nontsec
これらのソリューションの 1 つだけが必要です。
Chrome を何度もビルドできました。Visual Studio.NET 2008 を使用して Windows 7 で Chrome を構築する方法を見たい場合は、包括的な資料があります。