Wireshark を Windows 上でビルドする
Wireshark を Windows 上でビルドする方法を説明します。
Ubuntu の場合は以下で説明しています。
https://qiita.com/m-tmatma/items/f8c0061bcc488f126f46
全体的な流れ
- 必要なソフトを入手してインストールします。
- git で wireshark のソースを入手します。
- cmake で visual studio 用のプロジェクトを作成します。
- visual stduio でビルドします。
必要なもの
- Visual Studio 2019 (visual studio 2017 でも可)
- cmake
- SoftHSM2
- Qt
- chocolatey (winflexbison のインストールに使用)
- winflexbison
- python
- perl
必要なファイルの入手およびインストール
Visual Studio 2019
https://visualstudio.microsoft.com/ja/downloads/ からインストーラをダウンロードできます。
最初にインストールするときに再起動を求められます。
C++ によるデスクトップ開発
にチェックを入れてインストールします。
cmake
https://cmake.org/download/ からダウンロードしてインストールします。
SoftHSM2
https://github.com/disig/SoftHSM2-for-Windows/releases/download/v2.5.0/SoftHSM2-2.5.0.msi からダウンロードして管理者用のコマンドプロンプトで以下を実行してインストールします。
msiexec /qn /i SoftHSM2-2.5.0.msi
Qt
https://qiita.com/m-tmatma/items/71941c3aa43c83cbebfc により Qt をインストールします。
chocolatey
https://qiita.com/m-tmatma/items/0ea55b972a010806af8b により chocolatey をインストールします。
Perl
perl によると Windows 向けのバイナリパッケージとして
があります。
ActivePerl は登録を要求されてめんどくさいので、ここでは Strawberry Perl をダウンロードしてインストールします。
Python3
https://www.python.org/downloads/windows/ から Windows x86-64 executable installer
をダウンロードしてインストールします。Python 3.x 系のバージョンをインストールします。
git で wireshark のソースを入手
以下のようにして wireshark のソースコードを入手します。
git clone https://gitlab.com/wireshark/wireshark.git
cmake でプロジェクトを作成
visual studio 2019 の場合
以下のようなバッチファイルで cmake を使ってプロジェクトを作成します。
set SOURCEDIR=%~dp0wireshark
set OUTDIR=%~dp0build2019
set PLATFORM=x64
set QT5_BASE_DIR=C:\Qt\5.15.0\msvc2019_64
set WIRESHARK_BASE_DIR=%~dp0wireshark-libs
cd /d %SOURCEDIR%
cmake -E time cmake -G "Visual Studio 16 2019" -S %SOURCEDIR% -B %OUTDIR%
cmake -G "Visual Studio 16 2019" -S %SOURCEDIR% -B %OUTDIR%
cd /d %~dp0
-
PLATFORM
の環境変数を定義しないとエラーになります。 -
SOURCEDIR
の環境変数が git で clone した wireshark のソースツリーのトップフォルダになるようにします。 -
OUTDIR
の環境変数は cmake で作成するプロジェクトの生成先フォルダを示すようにします。このフォルダは事前に作成する必要はありません。
visual studio 2017 の場合 (参考)
visual studio 2017 の場合 -G
に "Visual Studio 15 2017 Win64"
を指定します。
set SOURCEDIR=%~dp0wireshark
set OUTDIR=%~dp0build2017
set PLATFORM=x64
set QT5_BASE_DIR=C:\Qt\5.15.0\msvc2019_64
set WIRESHARK_BASE_DIR=%~dp0wireshark-libs
cd /d %SOURCEDIR%
cmake -E time cmake -G "Visual Studio 15 2017 Win64" -S %SOURCEDIR% -B %OUTDIR%
cmake -G "Visual Studio 15 2017 Win64" -S %SOURCEDIR% -B %OUTDIR%
cd /d %~dp0
-
-G
での指定にWin64
を含みますが、PLATFORM
での指定は必要です。 - Qt のライブラリは visual studio 2017 用があるかは未確認。ここでは visual studio 2019 用を指定しています。
ビルド
visual studio を使う場合
OUTDIR
の環境変数で指定したフォルダに Wireshark.sln
が作成されているのでダブルクリックして開いて、ビルドします。
cmake を使う場合
cmake でのプロジェクト生成先と --build
を指定してビルドします。
ここでは OUTDIR
の環境変数が有効な前提でそのフォルダを指定しています。
cmake --build %OUTDIR%