Wireshark を Windows 上でビルドする


Wireshark を Windows 上でビルドする

Wireshark を Windows 上でビルドする方法を説明します。

Ubuntu の場合は以下で説明しています。
https://qiita.com/m-tmatma/items/f8c0061bcc488f126f46

全体的な流れ

  1. 必要なソフトを入手してインストールします。
  2. git で wireshark のソースを入手します。
  3. cmake で visual studio 用のプロジェクトを作成します。
  4. visual stduio でビルドします。

必要なもの

必要なファイルの入手およびインストール

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%