MeCab をソースコードからビルドしてインストール(形態素解析)(Windows 上)(書きかけ)
辞書の設定と,動作確認が終わっていません前準備
7-Zip のインストール
Build Tools for Visual Studio 2026(ビルドツール)のインストール
Build Tools for Visual Studio 2026(ビルドツール)のインストールを行い、C/C++ コードのビルド環境を整える。
Build Tools for Visual Studio は,Visual Studio の IDE を含まない C/C++ コンパイラ,ライブラリ,ビルドツール等のコマンドライン向け開発ツールセットである。インストール済みの場合,この手順は不要である。 以下のコマンドは、Build Tools が未インストールの場合は winget で新規インストールし、インストール済みの場合は 【インストールコマンドの実行方法】 管理者権限でコマンドプロンプトを起動する(手順:Windows キーまたはスタートメニュー → 上記のコマンドでは、Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし、続いて以下のコンポーネントを追加している。 追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。 インストール完了の確認 Visual Studio を必要とするとき Visual Studio の機能を必要とする場合は,追加インストールできる。[Build Tools for Visual Studio 2026(ビルドツール)のインストール手順を見るには、ここをクリック]
Windows での Build Tools for Visual Studio 2026 のインストール
setup.exe modify でコンポーネントを追加する(バージョンは変更しない)。cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。REM ============================================================
REM Visual C++ 再頒布可能パッケージ (VCRedist 2015-)
REM ============================================================
winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"
if not "%ERRORLEVEL%"=="0" ( color 0c & echo VCRedist のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )
REM ============================================================
REM Visual Studio Build Tools + Desktop development with C++
REM (VCTools、MSBuildTools、CMake連携、Clang、Windows 11 SDK)
REM ============================================================
REM 進行中のインストーラーを停止(ロック競合回避。対象プロセスが存在しない場合は
REM taskkillがエラーを返すが、これは想定内であるため出力のみ抑制する)
taskkill /F /IM vs_setup.exe /T >nul 2>&1
taskkill /F /IM vs_installer.exe /T >nul 2>&1
taskkill /F /IM vs_installerservice.exe /T >nul 2>&1
taskkill /F /IM msiexec.exe /T >nul 2>&1
REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
REM 未インストール時: winget で新規インストール
REM インストール済み時: setup.exe modify でコンポーネント追加(バージョンは変更しない)
winget list --id Microsoft.VisualStudio.BuildTools 2>nul | findstr /i "BuildTools" >nul 2>&1
if %ERRORLEVEL% EQU 0 (
for /f "usebackq delims=" %P in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -property installationPath`) do start /wait "" "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify --installPath "%P" --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100 --add Microsoft.VisualStudio.Component.VC.v143.x86.x64 --includeRecommended --quiet --norestart --nocache
if not "%ERRORLEVEL%"=="0" ( color 0c & echo Build Tools のコンポーネント追加に失敗しました & ping 127.0.0.1 -n 6 >nul & color )
) else (
winget install --scope machine --id Microsoft.VisualStudio.BuildTools -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "--quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100 --add Microsoft.VisualStudio.Component.VC.v143.x86.x64"
if not "%ERRORLEVEL%"=="0" ( color 0c & echo Build Tools のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )
)
REM
REM BuildTools のインストールパスを vswhere.exe で取得(メジャーバージョンに依存しない)
set "VSWHERE=C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"
set "BT_PATH="
for /f "usebackq delims=" %P in (`"%VSWHERE%" -products Microsoft.VisualStudio.Product.BuildTools -property installationPath`) do set "BT_PATH=%P"
if not defined BT_PATH ( color 0c & echo Build Tools のインストールパスを取得できませんでした & ping 127.0.0.1 -n 6 >nul & color )
REM 破損時の修復(任意、動作がおかしくなった場合)
REM if defined BT_PATH "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" repair --installPath "%BT_PATH%" --quiet --norestart
REM 導入確認(インストールパスが表示されれば正常)
"%VSWHERE%" -products * -requires Microsoft.VisualStudio.Workload.VCTools -property installationPath
--includeRecommended により、MSVC コンパイラ、C++ AddressSanitizer、vcpkg、CMake ツール、Windows 11 SDK 等の推奨コンポーネントが含まれる)winget list Microsoft.VisualStudio.BuildTools
MeCab Windows 版のインストール
- MeCab のWebページを開く
- ソースコード mecab-0.996.tar.gz と IPA 辞書をダウンロード
- ダウンロードした mecab-0.996.tar.gz ファイルを展開(解凍)する.分かりやすいディレクトリに置く.
c:\tools\mecab-0.996 下に展開(解凍)したものとして説明を続ける
- src\Makefile.msvc.in の書き換えを行う
- 64 ビット版に設定するため.6行目
変更前
LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X86 ADVAPI32.LIB変更後
LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X64 ADVAPI32.LIB
- 64 ビット版に設定するため.6行目
- DIC_VERSION を指定する
Windows でコンパイルしたときのエラーの回避のため. 8行目
変更前
-DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=@DIC_VERSION@変更後
-DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=270 - ソースコードの書き換えを行う.
- src\feature_index.cpp 356 行目
変更前
case 't': os_ << (size_t)path->rnode->char_type; break;変更後
case 't': os_ << (unsigned int)path->rnode->char_type; break;
- src\writer.cpp 260 行目
変更前
case 'L': *os << lattice->size(); break;変更後
case 'L': *os << (unsigned int)lattice->size(); break;
- src\feature_index.cpp 356 行目
- mecab.h の書き換え
mecab.h の 785 行目に,次の1行を挿入
virtual void set_result(const char *s) = 0;
- ビルド
cd c:\tools\mecab-0.996 cd src name -f Makefile.msvc.in - ビルドの終了の確認
エラーメッセージが出ていないこと.
- Windows の環境変数 PATH に次を追加
C:\Program Files (x86)\Mecab\bin - Windows の環境変数 MECABRC に次を設定
C:\Program Files (x86)\Mecab\etc\mecabrc
Pythonのmecab-pythonライブラリのインストール
- MeCab のWebページを開く
- 「perl/ruby/python/java バインデング」の下の「ダウンロード」をクリック.
- mecab-python-0.996.tar.gz をダウンロード(現時点での最新バージョン)
- ダウンロードが始まる.
- ダウンロードした mecab-python-0.996.tar.gz ファイルを展開(解凍)する.分かりやすいディレクトリに置く.
c:\tools\mecab-python-0.996 下に展開(解凍)したものとして説明を続ける
- c:\tools\mecab-0.996\src にある
mecab.h、libmecab.lib を
c:\tools\mecab-python-0.996 にコピー.
- c:\tools\mecab-python-0.996\setup.py を編集
version = "0.996",include_dirs=["C:\\tools\\mecab-0.996\\src"], library_dirs=["C:\\tools\\mecab-0.996\\src"], libraries=["libmecab"])
*この書き換えを行う理由:「'mecab-config' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されるエラーの回避のため.
- 以下のコマンドを管理者権限のx64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)で実行する
(手順:スタートメニュー →Visual Studio 20xx」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」 → 「管理者として実行」)。
「x64 Native Tools コマンドプロンプト」がないときは,ビルドツール (Build Tools) をインストールすると,x64 Native Tools コマンドプロンプトもインストールされる.その手順は,別ページ »で説明している.
cd c:\tools\mecab-python-0.996 python setup.py build
- エラーメッセージが出ないことを確認
- 以下のコマンドをx64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)で実行する
(手順:スタートメニュー →Visual Studio 20xx」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」 を選ぶ)。
python setup.py install
- エラーメッセージが出ないことを確認
辞書の設定と,動作確認が終わっていません
Makefile.msvc.in 9行目 -DVERSION="\"0.996\"" -DPACKAGE="\"mecab\"" \
mecab.h 1125行目 #ifndef SWIG
common.h include部分に追記
!>#include