日本語入力システム Mozc の Windows10 でのビルド

Googleが開発した日本語入力システム「Google日本語入力」のオープンソース版である Mozc を Windows10 でビルドするのに手間取ったので、備忘録として記録しておく。

Mozc – a Japanese Input Method Editor designed for multi-platform に従えばよいが、ビルド前の環境設定などの事前準備をきちんとしておかないといけない。

3台のPCで試したが、それぞれ作業前にインストールされているソフトウェアに違いがあるために、エラーなどの出方が異なった。しかし、以下では、PCを区別することなく、問題となった点などを記録しておく。

事前準備

How to build Mozc in Windows の Software Requirements の条件を満たすための作業を行う。

Visual Studio 2015 Community Edition

mozcのビルドのために、Visual Studio 2015のC++およびSDKをインストールしておく必要がある。

次のページの2015 (Visual Studio 2015 およびその他の製品) からインストーラをダウンロードして実行する。

https://visualstudio.microsoft.com/ja/vs/older-downloads/

最初、インストールするものを最小限にしたら C++ がインストールされず、mozcのビルドに失敗。そこで、C++ツールを追加してビルドしようとしたら、Windows SDK (Windows Kits)に含まれる mt.exe や rc.exe が見つからないというエラーで失敗した。

SDKをインストールしても、afxres.h がないというエラーで失敗した。Microsoft Foundation Class が必要とのこと。

不要なものをインストールしないようにと思ったが、時間ばかりかかってしまった。

あるPCの環境では次のオプション指定で不足のファイルはなくなった。すべての環境で大丈夫かははっきりしない。

ただし、Visual Studio 2015 のインストールと変更、アンインストールを繰り返し実行していたら mt.exe や rc.exe が見つからないということが再発してそのままではビルドできなかった。

mt.exe は、C:\Program Files (x86)\Windows Kits\10\bin\x86 などにあるようなので次のようにPATHを設定してgyp で設定ファイルを生成した。この時点では、mt.exeへのアクセスがPATHで設定されていなくても python build_mozc.py gyp の実行は終わるが、次のRelease packageのビルドで失敗したと思う。

set PATH=C:\Program Files (x86)\Windows Kits\10\bin\x86;%PATH%
python build_mozc.py gyp --qtdir=C:\Qt\5.11.2\msvc2015
python build_mozc.py build -c Release package

Qt 5

Open Source版をインストールしようとしたが、それでもユーザ登録が必要であった。

次のコンポーネントをインストールした。

環境変数設定

PowerShell

環境によっては、powershell がコマンドプロンプトから起動できない場合があった。その環境では、C:\Windows\System32\WindowsPowerShell\v1.0 にあったので、コントロールパネルの「環境変数を編集」から、PATHにC:\Windows\System32\WindowsPowerShell\v1.0 を追加した。

Python

Python2.7 が必要のようだ。depot_toolsでもインストールされるが、Python2.7 をあらかじめインストールして、そのパスをPATHに設定しておいた方が良いかもしれない。

ただし、コントロールパネルの「環境変数を編集」に設定すると他のプログラムにも影響する。Python3 が必要な場合には、mozcのインストールが終わったらPython2.7のパスの設定を削除しておいた方が良いであろう。

ビルド作業

How to build Mozc in Windows に従ってビルド作業を進める。

ディレクトリ構成

以下では、次のようなディレクトリ構成を仮定している。下記のバッチファイルは、C:\workに置き、そこをカレントディレクトリとして実行した。

  • C:\work
    • doslog.exe
    • depot_tools
    • mozc

出力ログの保存

当初はうまくビルドできなかったので、コマンドプロンプトで表示しつつ、出力ログをファイルに保存するために DOS process LOG writer (Doslog.exe) を利用した。

mozcの生成の際には C:\work に doslog.exe を置いた状態で作業をしていた。

doglog.exe

Doslog.exe は、以下からダウンロード可能である。

https://www.vector.co.jp/soft/dl/win95/util/se144974.html

ログをファイルに保存する必要がなければ不要である。ただし、以下では使うことを前提に進める。

depot_tools

depot_tools_tutorial(7) Manual Page の記述に従って depot_tools をインストールする。

ダウンロード

「Download the depot_tools bundle and extract it somewhere.」に従って、次のファイルをダウンロードする。

https://storage.googleapis.com/chrome-infra/depot_tools.zip

Explorer で zipファイルの中をみて、そこからコピーでは必要なファイルがコピーされないと注意書きがあるので、ダウンロードしたファイルを展開する。

展開してできた depot_tools ディレクトリ以下をここでは、C:\work にコピーする。

環境変数設定

以下のように、コントロールパネルの「環境変数を編集」でPATHに、C:\work\depot_tools を追加する。

環境変数の編集を起動する。

PATHを選択して編集ボタンをクリックする。

C:\work\depot_tools を追加して、一番上に移動する。

「OK」ボタンをクリックして、PATHが更新されていることを確認する。

gclientの実行

コマンドプロンプト cmd.exe から gclient を実行する。

ログを残すために次の runGClient.bat をC:\work に作成して実行した。

runGClient.bat

setlocal
set LOG_FILE=/OUT C:\work\gclient.log
C:
cd C:\work\depot_tools
..\doslog.exe gclient.bat

runGClient.batの実行結果 (C:\work\gclient.log)

下記の部分をクリックすると展開される。

正常終了の場合でも Usage が表示されるようだ。最初は、何か問題があるように思って悩んだが、その後のビルドで支障がなかった。

Downloading CIPD client for windows-386 from https://chrome-infra-packages.appspot.com/client?platform=windows-386&version=git_revision:fb963f0f43e265a65fb7f1f202e17ea23e947063...
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Usage: gclient.py <command> [options]

Meta checkout dependency manager for Git.

Commands are:
  config   creates a .gclient file in the current directory
  diff     displays local diff for every dependencies
  fetch    fetches upstream commits for all modules
  flatten  flattens the solutions into a single DEPS file
  getdep   gets revision information and variable values from a DEPS file
  grep     greps through git repos managed by gclient
  help     prints list of commands or help for a specific command
  metrics  reports, and optionally modifies, the status of metric collection
  pack     generates a patch which can be applied at the root of the tree
  recurse  operates [command args ...] on all the dependencies
  revert   reverts all modifications in every dependencies
  revinfo  outputs revision info mapping for the client and its dependencies
  root     outputs the solution root (or current dir if there isn't one)
  runhooks runs hooks for files that have been modified in the local working copy
  setdep   modifies dependency revisions and variable values in a DEPS file
  status   shows modification status for every dependencies
  sync     checkout/update all modules
  validate validates the .gclient and DEPS syntax
  verify   verifies the DEPS file deps are only from allowed_hosts

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -j JOBS, --jobs=JOBS  Specify how many SCM commands can run in parallel;
                        defaults to 8 on this machine
  -v, --verbose         Produces additional output for diagnostics. Can be
                        used up to three times for more logging info.
  --gclientfile=CONFIG_FILENAME
                        Specify an alternate .gclient file
  --spec=SPEC           create a gclient file containing the provided string.
                        Due to Cygwin/Python brokenness, it can't contain any
                        newlines.
  --no-nag-max          Ignored for backwards compatibility.

mozc のGitHubからのダウンロード

mozc をGitHubからのダウンロードする。

ログを残すために、mozcGet.bat および runMozcGet.bat をC:\work に作成し、runMozcGet.bat を実行した。

mozcGet.bat

cd c:\work
git clone https://github.com/google/mozc.git -b master --single-branch --recursive

runMozcGet.bat

このrunMozcGet.bat の例では、Windows Kits (Windows SDK)に含まれている mt.exeや rc.exe にうまくアクセスできなかったので、パスにディレクトリを追加している。

コマンドプロンプトで where mt.exe や where rc.exe でmtコマンドやrcコマンドが見つかれば、パスに追加する必要はない。

set LOG_FILE=/OUT C:\work\mozcGet.log
set PATH=C:\Program Files (x86)\Windows Kits\10\bin\x86;%PATH%
doslog mozcGet.batじk

runMozcGet.batの実行結果 (C:\work\mozcGet.log)

次の部分をクリックすると展開される。

C:\work>cd c:\work 

C:\work>git clone https://github.com/google/mozc.git -b master --single-branch --recursive 
Cloning into 'mozc'...
Checking out files:   3% (87/2642)   
Checking out files:   4% (106/2642)   
Checking out files:   5% (133/2642)   
Checking out files:   6% (159/2642)   
Checking out files:   6% (183/2642)   
Checking out files:   7% (185/2642)   
Checking out files:   8% (212/2642)   
Checking out files:   9% (238/2642)   
Checking out files:  10% (265/2642)   
Checking out files:  11% (291/2642)   
Checking out files:  12% (318/2642)   
Checking out files:  12% (333/2642)   
Checking out files:  13% (344/2642)   
Checking out files:  14% (370/2642)   
Checking out files:  15% (397/2642)   
Checking out files:  16% (423/2642)   
Checking out files:  17% (450/2642)   
Checking out files:  18% (476/2642)   
Checking out files:  19% (502/2642)   
Checking out files:  19% (510/2642)   
Checking out files:  20% (529/2642)   
Checking out files:  21% (555/2642)   
Checking out files:  22% (582/2642)   
Checking out files:  23% (608/2642)   
Checking out files:  24% (635/2642)   
Checking out files:  25% (661/2642)   
Checking out files:  26% (687/2642)   
Checking out files:  27% (714/2642)   
Checking out files:  27% (735/2642)   
Checking out files:  28% (740/2642)   
Checking out files:  29% (767/2642)   
Checking out files:  30% (793/2642)   
Checking out files:  31% (820/2642)   
Checking out files:  32% (846/2642)   
Checking out files:  33% (872/2642)   
Checking out files:  34% (899/2642)   
Checking out files:  35% (925/2642)   
Checking out files:  35% (951/2642)   
Checking out files:  36% (952/2642)   
Checking out files:  37% (978/2642)   
Checking out files:  38% (1004/2642)   
Checking out files:  38% (1021/2642)   
Checking out files:  39% (1031/2642)   
Checking out files:  40% (1057/2642)   
Checking out files:  41% (1084/2642)   
Checking out files:  42% (1110/2642)   
Checking out files:  43% (1137/2642)   
Checking out files:  44% (1163/2642)   
Checking out files:  45% (1189/2642)   
Checking out files:  46% (1216/2642)   
Checking out files:  47% (1242/2642)   
Checking out files:  48% (1269/2642)   
Checking out files:  48% (1270/2642)   
Checking out files:  48% (1289/2642)   
Checking out files:  49% (1295/2642)   
Checking out files:  50% (1321/2642)   
Checking out files:  51% (1348/2642)   
Checking out files:  52% (1374/2642)   
Checking out files:  53% (1401/2642)   
Checking out files:  53% (1417/2642)   
Checking out files:  54% (1427/2642)   
Checking out files:  55% (1454/2642)   
Checking out files:  56% (1480/2642)   
Checking out files:  57% (1506/2642)   
Checking out files:  58% (1533/2642)   
Checking out files:  59% (1559/2642)   
Checking out files:  60% (1586/2642)   
Checking out files:  61% (1612/2642)   
Checking out files:  61% (1629/2642)   
Checking out files:  62% (1639/2642)   
Checking out files:  63% (1665/2642)   
Checking out files:  64% (1691/2642)   
Checking out files:  65% (1718/2642)   
Checking out files:  66% (1744/2642)   
Checking out files:  67% (1771/2642)   
Checking out files:  68% (1797/2642)   
Checking out files:  69% (1823/2642)   
Checking out files:  70% (1850/2642)   
Checking out files:  70% (1864/2642)   
Checking out files:  71% (1876/2642)   
Checking out files:  72% (1903/2642)   
Checking out files:  73% (1929/2642)   
Checking out files:  74% (1956/2642)   
Checking out files:  75% (1982/2642)   
Checking out files:  76% (2008/2642)   
Checking out files:  77% (2035/2642)   
Checking out files:  78% (2061/2642)   
Checking out files:  78% (2085/2642)   
Checking out files:  79% (2088/2642)   
Checking out files:  80% (2114/2642)   
Checking out files:  81% (2141/2642)   
Checking out files:  82% (2167/2642)   
Checking out files:  83% (2193/2642)   
Checking out files:  84% (2220/2642)   
Checking out files:  85% (2246/2642)   
Checking out files:  86% (2273/2642)   
Checking out files:  86% (2298/2642)   
Checking out files:  87% (2299/2642)   
Checking out files:  88% (2325/2642)   
Checking out files:  89% (2352/2642)   
Checking out files:  90% (2378/2642)   
Checking out files:  91% (2405/2642)   
Checking out files:  92% (2431/2642)   
Checking out files:  92% (2453/2642)   
Checking out files:  93% (2458/2642)   
Checking out files:  94% (2484/2642)   
Checking out files:  95% (2510/2642)   
Checking out files:  96% (2537/2642)   
Checking out files:  97% (2563/2642)   
Checking out files:  98% (2590/2642)   
Checking out files:  99% (2616/2642)   
Checking out files: 100% (2642/2642)   
Checking out files: 100% (2642/2642), done.
Submodule 'src/third_party/breakpad' (https://chromium.googlesource.com/breakpad/breakpad) registered for path 'src/third_party/breakpad'
Submodule 'src/third_party/gtest' (https://github.com/google/googletest.git) registered for path 'src/third_party/gtest'
Submodule 'src/third_party/gyp' (https://chromium.googlesource.com/external/gyp) registered for path 'src/third_party/gyp'
Submodule 'src/third_party/japanese_usage_dictionary' (https://github.com/hiroyuki-komatsu/japanese-usage-dictionary.git) registered for path 'src/third_party/japanese_usage_dictionary'
Submodule 'src/third_party/jsoncpp' (https://github.com/open-source-parsers/jsoncpp.git) registered for path 'src/third_party/jsoncpp'
Submodule 'src/third_party/protobuf' (https://github.com/google/protobuf.git) registered for path 'src/third_party/protobuf'
Submodule 'src/third_party/zinnia' (https://github.com/taku910/zinnia.git) registered for path 'src/third_party/zinnia'
Cloning into 'C:/work/mozc/src/third_party/breakpad'...
Cloning into 'C:/work/mozc/src/third_party/gtest'...
Cloning into 'C:/work/mozc/src/third_party/gyp'...
Cloning into 'C:/work/mozc/src/third_party/japanese_usage_dictionary'...
Cloning into 'C:/work/mozc/src/third_party/jsoncpp'...
Cloning into 'C:/work/mozc/src/third_party/protobuf'...
Cloning into 'C:/work/mozc/src/third_party/zinnia'...
Submodule path 'src/third_party/breakpad': checked out '85b27e4a692b803dcd493ea0a9ce3828af6b82bd'
Submodule path 'src/third_party/gtest': checked out '8a6158717bc1587a26e6134179eb9e2a9f1c2185'
Submodule path 'src/third_party/gyp': checked out '4ec6c4e3a94bd04a6da2858163d40b2429b8aad1'
Submodule path 'src/third_party/japanese_usage_dictionary': checked out 'e5b3425575734c323e1d947009dd74709437b684'
Submodule path 'src/third_party/jsoncpp': checked out '11086dd6a7eba04289944367ca82cea71299ed70'
Submodule path 'src/third_party/protobuf': checked out '92a7e778e7394386f413cec28d67a07630f784b1'
Submodule 'third_party/benchmark' (https://github.com/google/benchmark.git) registered for path 'src/third_party/protobuf/third_party/benchmark'
Cloning into 'C:/work/mozc/src/third_party/protobuf/third_party/benchmark'...
Submodule path 'src/third_party/protobuf/third_party/benchmark': checked out '5b7683f49e1e9223cf9927b24f6fd3d6bd82e3f8'
Submodule path 'src/third_party/zinnia': checked out '581faa8f6f15e4a7b21964be3a5ec36265c80e5b'

mozcのビルド用ファイルの生成

mozc をビルドするためのファイルを生成する。ここでは必要最小限のオプションを指定することにする。

–branding=GoogleJapaneseInput を指定するとプログラムの問題でコンパイルエラーとなってビルドが完了しなかった。ただし、ビルド環境の構築がきちんとできていない場合だったので、ビルド環境構築がきちんとしていれば大丈夫なのかもしれない。時間ができたら確認したい。

ログを残すために、mozcGenerate.bat および runMozcGenerate.bat をC:\work に作成し、runMozcGenerate.batを実行した。

mozcGenerate.bat

cd C:\work\mozc\src
python build_mozc.py gyp --qtdir=C:\Qt\5.11.2\msvc2015

runMozcGenerate.bat

set LOG_FILE=/OUT C:\work\mozcGenerate.log
set PATH=C:\Program Files (x86)\Windows Kits\10\bin\x86;%PATH%
doslog mozcGenerate.bat

runMozcGenerate.batの実行結果(C:\work\mozcGenerate.log)

次の部分をクリックすると展開される。

C:\work>cd C:\work\mozc\src 

C:\work\mozc\src>python build_mozc.py gyp --qtdir=C:\Qt\5.11.2\msvc2015 
INFO: Generating version definition file...
INFO: Version string is 2.23.2815.100
INFO: Running: C:\Python27\python.exe C:\work\mozc\src\build_tools\ensure_gyp_module_path.py --expected=C:\work\mozc\src\third_party\gyp\pylib\gyp
INFO: Building GYP command line...
INFO: Running GYP...
INFO: Running: C:\Python27\python.exe C:\work\mozc\src\third_party\gyp\gyp_main.py --depth=. --include=./gyp/common_win.gypi -D abs_depth=C:\work\mozc\src -D ext_third_party_dir=C:\work\mozc\src\third_party -D python_executable=C:\Python27\python.exe ./data/test/session/scenario\scenario.gyp ./data/test/session/scenario\usage_stats\usage_stats.gyp ./data_manager\chromeos\chromeos_data_manager.gyp ./data_manager\chromeos\chromeos_data_manager_base.gyp ./data_manager\chromeos\chromeos_data_manager_test.gyp ./data_manager\oss\oss_data_manager.gyp ./data_manager\oss\oss_data_manager_base.gyp ./data_manager\oss\oss_data_manager_test.gyp ./data_manager\testing\mock_data_manager.gyp ./data_manager\testing\mock_data_manager_base.gyp ./data_manager\testing\mock_data_manager_test.gyp ./dictionary\file\dictionary_file.gyp ./dictionary\file\dictionary_file_test.gyp ./dictionary\system\system_dictionary.gyp ./dictionary\system\system_dictionary_test.gyp ./rewriter\calculator\calculator.gyp ./win32\base\win32_base.gyp ./win32\broker\broker.gyp ./win32\build32\build32.gyp ./win32\build32\build32_dynamic.gyp ./win32\build64\build64.gyp ./win32\custom_action\custom_action.gyp ./win32\ime\ime.gyp ./win32\installer\installer.gyp ./win32\tip\tip.gyp .\base\base.gyp .\base\base_test.gyp .\client\client.gyp .\client\client_test.gyp .\composer\composer.gyp .\composer\composer_test.gyp .\config\config.gyp .\config\config_test.gyp .\converter\converter.gyp .\converter\converter_base.gyp .\converter\converter_main.gyp .\converter\converter_test.gyp .\data_manager\data_manager.gyp .\data_manager\data_manager_base.gyp .\data_manager\data_manager_test.gyp .\dictionary\dictionary.gyp .\dictionary\dictionary_base.gyp .\dictionary\dictionary_test.gyp .\engine\engine.gyp .\engine\engine_test.gyp .\gui\gui.gyp .\gyp\tests.gyp .\handwriting\handwriting.gyp .\handwriting\handwriting_test.gyp .\handwriting\zinnia.gyp .\ipc\ipc.gyp .\mac\mac.gyp .\net\jsoncpp.gyp .\net\net.gyp .\net\net_test.gyp .\prediction\prediction.gyp .\prediction\prediction_base.gyp .\prediction\prediction_test.gyp .\protobuf\protobuf.gyp .\protocol\protocol.gyp .\renderer\renderer.gyp .\request\request.gyp .\rewriter\rewriter.gyp .\rewriter\rewriter_base.gyp .\rewriter\rewriter_test.gyp .\server\server.gyp .\session\session.gyp .\session\session_base.gyp .\session\session_test.gyp .\storage\storage.gyp .\storage\storage_test.gyp .\testing\testing.gyp .\transliteration\transliteration.gyp .\transliteration\transliteration_test.gyp .\usage_stats\usage_stats.gyp .\usage_stats\usage_stats_base.gyp .\usage_stats\usage_stats_test.gyp -D branding=Mozc -D use_qt=YES -D qt_dir=C:\Qt\5.11.2\msvc2015 -D use_wix=NO -D build_base=C:\work\mozc\src\out_win -D build_short_base=out_win -D warn_as_error=0 -D channel_dev=1 -D enable_cloud_handwriting=0 -D target_platform=Windows -G msvs_version=2015 --generator-output=. -G output_dir=out_win
INFO: Done
INFO: Running: C:\Python27\python.exe C:\work\mozc\src\build_tools\copy_dll_and_symbol.py --basenames Qt5Cored;Qt5Guid;Qt5Widgetsd --dll_paths C:\Qt\5.11.2\msvc2015\bin --pdb_paths C:\Qt\5.11.2\msvc2015\lib --target_dir C:\work\mozc\src\out_win\DebugDynamic
Copying C:\Qt\5.11.2\msvc2015\bin\Qt5Cored.dll to C:\work\mozc\src\out_win\DebugDynamic\Qt5Cored.dll
Copying C:\Qt\5.11.2\msvc2015\bin\Qt5Guid.dll to C:\work\mozc\src\out_win\DebugDynamic\Qt5Guid.dll
Copying C:\Qt\5.11.2\msvc2015\bin\Qt5Widgetsd.dll to C:\work\mozc\src\out_win\DebugDynamic\Qt5Widgetsd.dll
INFO: Running: C:\Python27\python.exe C:\work\mozc\src\build_tools\copy_dll_and_symbol.py --basenames Qt5Core;Qt5Gui;Qt5Widgets --dll_paths C:\Qt\5.11.2\msvc2015\bin --pdb_paths C:\Qt\5.11.2\msvc2015\lib --target_dir C:\work\mozc\src\out_win\ReleaseDynamic
Copying C:\Qt\5.11.2\msvc2015\bin\Qt5Core.dll to C:\work\mozc\src\out_win\ReleaseDynamic\Qt5Core.dll
Copying C:\Qt\5.11.2\msvc2015\bin\Qt5Gui.dll to C:\work\mozc\src\out_win\ReleaseDynamic\Qt5Gui.dll
Copying C:\Qt\5.11.2\msvc2015\bin\Qt5Widgets.dll to C:\work\mozc\src\out_win\ReleaseDynamic\Qt5Widgets.dll
INFO: Running: C:\Python27\python.exe C:\work\mozc\src\build_tools\copy_dll_and_symbol.py --basenames qwindowsd --dll_paths C:\Qt\5.11.2\msvc2015\plugins\platforms --pdb_paths C:\Qt\5.11.2\msvc2015\plugins\platforms --target_dir C:\work\mozc\src\out_win\DebugDynamic\platforms
Copying C:\Qt\5.11.2\msvc2015\plugins\platforms\qwindowsd.dll to C:\work\mozc\src\out_win\DebugDynamic\platforms\qwindowsd.dll
INFO: Running: C:\Python27\python.exe C:\work\mozc\src\build_tools\copy_dll_and_symbol.py --basenames qwindows --dll_paths C:\Qt\5.11.2\msvc2015\plugins\platforms --pdb_paths C:\Qt\5.11.2\msvc2015\plugins\platforms --target_dir C:\work\mozc\src\out_win\ReleaseDynamic\platforms
Copying C:\Qt\5.11.2\msvc2015\plugins\platforms\qwindows.dll to C:\work\mozc\src\out_win\ReleaseDynamic\platforms\qwindows.dll

mozcのビルド

直前の段階で生成したファイルに従って、mozcのビルドを行う。

ログを残すために、mozcBuild.bat および runMozcBuild.bat をC:\work に作成し、runMozcBuild.batを実行した。

mozcBuild.bat

cd C:\work\mozc\src
python build_mozc.py build -c Release package

runMozcBuild.bat

set LOG_FILE=/OUT C:\work\mozcBuild.log
doslog mozcBuild.bat

runMozcBuild.batの実行結果(C:\work\mozcBuild.log)の一部

21MB以上の大量のログが生成された。正常に終了した場合の最後の部分は以下のようであった。

メモ: インクルード ファイル:     C:\work\mozc\src\third_party\protobuf\src\google/protobuf/generated_enum_reflection.h
メモ: インクルード ファイル:     C:\work\mozc\src\out_win\Release_x64\gen\proto_out\protocol/candidates.pb.h
メモ: インクルード ファイル:     C:\work\mozc\src\out_win\Release_x64\gen\proto_out\protocol/config.pb.h
メモ: インクルード ファイル:     C:\work\mozc\src\out_win\Release_x64\gen\proto_out\protocol/engine_builder.pb.h
メモ: インクルード ファイル:     C:\work\mozc\src\out_win\Release_x64\gen\proto_out\protocol/user_dictionary_storage.pb.h
メモ: インクルード ファイル:  C:\work\mozc\src\config/config_handler.h
メモ: インクルード ファイル:  C:\work\mozc\src\win32/base/imm_registrar.h
メモ: インクルード ファイル:   C:\work\mozc\src\win32/base/keyboard_layout_id.h
メモ: インクルード ファイル:  C:\work\mozc\src\win32/base/imm_util.h
メモ: インクルード ファイル:  C:\work\mozc\src\win32/base/migration_util.h
[324/327] LINK_EMBED(DLL) mozc_ja_tip64.dll
   ライブラリ mozc_ja_tip64.dll.lib とオブジェクト mozc_ja_tip64.dll.exp を作成中
コード生成しています。
コード生成が終了しました。
[325/327] LINK_EMBED(DLL) mozc_ja.ime
   ライブラリ mozc_ja.ime.lib とオブジェクト mozc_ja.ime.exp を作成中
コード生成しています。
コード生成が終了しました。
[326/327] LINK_EMBED mozc_broker64.exe
コード生成しています。
コード生成が終了しました。
[327/327] STAMP obj\win32\build64\mozc_win32_build64.actions_depends.stamp

エラーが発生した場合には、ログの途中に示されているので少し探す必要がある。最後だけを見ても何が問題なのかよくわからない。

ログを記録しておかないと原因調査が難しい。出力をファイルにリダイレクトするだけでも良いが、進捗状況が気になる場合には、doslog.exe を使うと良いと思った。