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:
[32mconfig [39m creates a .gclient file in the current directory
[32mdiff [39m displays local diff for every dependencies
[32mfetch [39m fetches upstream commits for all modules
[32mflatten [39m flattens the solutions into a single DEPS file
[32mgetdep [39m gets revision information and variable values from a DEPS file
[32mgrep [39m greps through git repos managed by gclient
[32mhelp [39m prints list of commands or help for a specific command
[32mmetrics [39m reports, and optionally modifies, the status of metric collection
[32mpack [39m generates a patch which can be applied at the root of the tree
[32mrecurse [39m operates [command args ...] on all the dependencies
[32mrevert [39m reverts all modifications in every dependencies
[32mrevinfo [39m outputs revision info mapping for the client and its dependencies
[32mroot [39m outputs the solution root (or current dir if there isn't one)
[32mrunhooks[39m runs hooks for files that have been modified in the local working copy
[32msetdep [39m modifies dependency revisions and variable values in a DEPS file
[32mstatus [39m shows modification status for every dependencies
[32msync [39m checkout/update all modules
[32mvalidate[39m validates the .gclient and DEPS syntax
[32mverify [39m 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 を使うと良いと思った。






