docs: Windows CMake builds

Updated the WSDG Windows build instructions to use CMake.

Change-Id: I5006c07e09ec6f628e8bc44006a3f1086e831a3c
Reviewed-on: https://code.wireshark.org/review/11485
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Petri-Dish: Graham Bloice <graham.bloice@trihedral.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
Graham Bloice 2015-11-01 21:07:42 +00:00 committed by Michael Mann
parent 4ea610a54a
commit 25e3a6c021
6 changed files with 153 additions and 352 deletions

View File

@ -93,6 +93,8 @@ Also the 64 bit Windows version are now supported by Wireshark. Although
not all libraries are made 64 bit ready yet, basic operations are all
available.
* Windows 10
* Windows 8.1 / Windows Server 2012 R2
* Windows 8 / Windows Server 2012
@ -103,6 +105,9 @@ available.
* Windows XP / Windows Server 2003
Support for XP / Server 2003 is best efforts for Wireshark 2.0 and later, it may fail to run
at any time due to 3rd party library compatibility.
[[ChIntroDevelopment]]
=== Development and maintenance of Wireshark

View File

@ -71,83 +71,42 @@ for Wireshark suitable for cygwin's gcc compiler.
=== Win32: Automated library download
[[ChLibsSetupInitial]]
The required libraries (apart from Qt) are automatically downloaded as part of
the CMake generation step, and subsequently as required when libraries are updated.
The libraries are downloaded into the directory indicated by the environment
variable WIRESHARK_BASE_DIR, this must be set appropriately for your environment.
The libraries are downloaded and extracted into WIRESHARK_BASE_DIR\wireshark-win32-libs
and WIRESHARK_BASE_DIR\wireshark-win64-libs for 32 and 64 bit builds respectively.
==== Initial download
You may also directly set the library directory with the environment variable
WIRESHARK_LIB_DIR, but if you switch between 32 bit and 64 bit builds, the value of this
must be set appropriately.
You can download and install all required libraries by using the `setup` target
of 'Makefile.nmake' from the source package.
[[ChLibsQt]]
[TIP]
.Use the setup target
====
It's a really good idea to use the Win32 automated library download to
install the required libraries as it makes this download very easy.
=== Qt
Before you start the download, you must have installed both the required tools
(see <<ChapterTools>>) and the Wireshark sources (see <<ChSrcObtain>>).
====
The Qt library is used to build the UI for Wireshark and is used to provide a
platform independant UI.
For more information on the Qt libraries, see <<ChUIQt>>.
By default the libraries will be downloaded and installed into
'C:\wireshark-win32-libs' for x86 builds and 'C:\wireshark-win64-libs' for x86_64 builds.
You can change this to any other location by editing
'config.nmake' and changing the line containing
WIRESHARK_LIB_DIR to your favourite place. You must use an absolute path.
[[ChLibsUnixQt]]
Then run the command
==== Unix
----
> nmake -f Makefile.nmake setup
----
TBD.
This will first check for all the various tools needed to build Wireshark
as described in <<ChToolsWin32Verify>>.
[[ChLibsWin32Qt]]
Then it will download the zipped libraries (together around 45MB for x86 and 52MB for x64) from the
server location at
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[] into the
directory specified by WIRESHARK_LIB_DIR and install (unzip) all required
library files there.
==== Win32 MSVC
If you have problems downloading the library files, you might be connected to
the internet through a proxy. In this case see the wget proxy comment in
<<ChToolsWget>>.
[[ChLibsSetupUpdate]]
==== Update of a previous download
As new versions of the libraries become available, maybe with bugfixes or
some new functionality, your libraries get outdated.
You could simply remove everything in the WIRESHARK_LIB_DIR dir and call the
`setup` target again, but that would require a download of every file again,
which isn't necessary.
The following will bring your libraries up to date:
* Update your Wireshark sources to the latest SVN files (see <<ChSrcObtain>>), so the zip filenames in the setup target
of Makefile.nmake are in sync with the library zip files on the server.
* Execute the library setup command as described above.
+
--
----
> nmake -f Makefile.nmake setup
----
Note that this command will automatically do a `clean-setup` which will
remove all files previously unzipped from the downloaded files in your
WIRESHARK_LIB_DIR library path (all the subdirs, e.g.
'$$c:\wireshark-win32-libs\gtk+$$'),
except for the zip files located at the toplevel, which are the files
downloaded the last time(s).
Also note that as wget will download only the
missing (updated) files, existing zip files in the WIRESHARK_LIB_DIR dir won't be
downloaded again. Remaining (outdated) zip files shouldn't do any harm.
--
Qt5 must be installed maunally, from the Qt installers page
http://www.qt.io/download-open-source/#section-2[], using the version of Qt
appropriate for your compiler. Note that separate installations (into different directories) of Qt
are required for 32 bit and 64 bit builds. The environment variable QT5_BASE_DIR should be
set as appropriate for your environment and should point to the Qt directory that contains the
bin directory, e.g. C:\Qt\Qt5.5.0\5.5\msvc2013
[[ChLibsGtk]]
@ -157,7 +116,7 @@ The Glib library is used as a basic platform abstraction library, it's
not related to graphical user interface (GUI) things. For a detailed
description about GLib, see <<ChCodeGLib>>.
The GTK and its dependent libraries are used to build Wireshark's GUI.
The GTK and its dependent libraries are used to build the older, deprecated, Wireshark GUI.
For a detailed description of the GTK libraries, see <<ChUIGTK>>.
All other libraries are dependent on the two libraries mentioned above,
@ -170,7 +129,6 @@ The 2.x versions require all mentioned libs.
[[ChLibsUnixGTK]]
==== Unix
The GLib/GTK+ libraries are available for many unix-like platforms and
@ -410,6 +368,19 @@ http://www.maxmind.com/app/c[].
We provide a package cross-compiled using MinGW32 at
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
[[ChLibsWinSparkle]]
=== WinSparkle (optional)
WinSparkle is an easy-to-use software update library for Windows developers.
[[ChLibsWin32WinSparkle]]
==== Win32 MSVC
We provide a copy of the WinSparkle package at
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
++++++++++++++++++++++++++++++++++++++
<!-- End of WSDG Chapter Libraries -->
++++++++++++++++++++++++++++++++++++++

View File

@ -38,9 +38,8 @@ Known traps are:
. Not using the correct (x86 or x64) version of the Visual Studio command prompt.
. Not copying win32.mak to the newer versions of the SDK.
. Not copying/downloading the correct version of vcredist_xYY.exe.
====
[[ChSetupPowerShell]]
@ -95,18 +94,6 @@ It's possible to compile Wireshark with a wide range
of Microsoft C compiler variants. For details see
<<ChToolsMSChain>>.
[TIP]
.Is Win32.Mak missing?
====
For VS2013 (and later) Microsoft has left out a required file from the
include files to build with nmake. To fix this copy Win32.Mak from the Win 7 SDK
into an appropriate path for use with VS2013, e.g.
----
C:\> xcopy "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\Win32.Mak" ^
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include"
----
====
You may have to do this as Administrator.
Compiling with gcc or Clang is not recommended and will
@ -173,16 +160,10 @@ http://qt-project.org/downloads[download page] and select a component that
matches your target system and compiler. For example, the ``msvc2013 64-bit
OpenGL'' component is used to build the official 64-bit packages.
Note that the Qt package also includes the Qt Creator IDE, which is useful
for designing graphical components and includes an interactive debugger.
You'll need to build Wireshark using nmake before you'll be able to build the
Wireshark project (uiqtWireshark.pro), however.
You can also use Chocolatey to install Qt (there are packages for x86 & x64 and various MSVC compilers, e.g.
----
PS$>choco install qt-sdk-windows-x86-msvc2013_opengl
----
Note that separate installations (into different directories) of Qt
are required for 32 bit and 64 bit builds. The environment variable QT5_BASE_DIR should be
set as appropriate for your environment and should point to the Qt directory that contains the
bin directory, e.g. C:\Qt\Qt5.5.0\5.5\msvc2013
[[ChSetupCygwin]]
@ -312,6 +293,22 @@ PS$> choco install git
A list of other GUI interfaces for Git can be found at
http://git-scm.com/downloads/guis
[[ChSetupCMake]]
=== Install CMake
Get the CMake installer from https://cmake.org/download/[] and install CMake into
the default location. Ensure the directory containing cmake.exe is added to your path.
Alternatively you can install CMake using Chocolatey:
----
PS$>choco install cmake.portable
----
Chocolatey ensures cmake.exe is on your path.
==== Install and Prepare Sources
[TIP]
@ -364,7 +361,8 @@ Make sure your repository path doesn't contain spaces.
From the Start Menu (or Start Screen), navigate to the Visual Studio 2013 ->
Visual Studio Tools directory and choose the Command Prompt appropriate for
the build you wish to make, e.g. VS2013 x86 Native Tools Command Prompt for a 32-bit version, VS2013 x64 Native Tools Command Prompt for a 64-bit version.
the build you wish to make, e.g. VS2013 x86 Native Tools Command Prompt for a 32-bit version,
VS2013 x64 Native Tools Command Prompt for a 64-bit version.
[TIP]
.Pin the items to the Task Bar
@ -381,9 +379,9 @@ Set the following environment variables, using paths and values suitable for you
----
> set CYGWIN=nodosfilewarning
> set WIRESHARK_BASE_DIR=C:\Development
> set WIRESHARK_BASE_DIR=C:\Development or set WIRESHARK_LIB_DIR to the appropriate library directory for your build.
> set WIRESHARK_TARGET_PLATFORM=win32 or win64 as required
> set QT5_BASE_DIR=C:\Qt\Qt5.3.0\5.3\msvc2013
> set QT5_BASE_DIR=C:\Qt\Qt5.5.0\5.5\msvc2013
> set WIRESHARK_VERSION_EXTRA=-YourExtraVersionInfo
----
@ -396,103 +394,60 @@ Setting these variables could be added to a batch file to be run after you open
the Visual Studio Tools Command Prompt.
--
. Change to the correct source directory
. Create and change to the correct build directory. CMake is best used in an out-of-tree build configuration
where the build is done in a separate directory to the source tree, leaving the source tree in a pristine
state. 32 and 64 bit builds require a separate build directory. Create (if required) and change to the appropriate
build directory.
+
--
----
> cd C:\Development\wireshark
> mkdir C:\Development\wsbuild32
> cd C:\Development\wsbuild32
----
to jump into the source directory
to create and jump into the build directory.
The build directory can be deleted at any time and the build files regenerated as detailed in <<ChWin32Generate>>.
--
[[ChToolsWin32Verify]]
[[ChWin32Generate]]
==== Verify installed tools
==== Generate the build files
After you've installed the Wireshark sources (see <<ChSrcObtain>>), you can
check the correct installation of all tools by using the `verify_tools` target of
the `Makefile.nmake` from the source package.
CMake is used to process the CMakeLists.txt files in the source tree and produce build files appropriate
for your system.
[WARNING]
.Dependencies ahead
====
You will need the Wireshark sources and some tools
(nmake, bash) installed, before this verification is able
to work.
====
You can generate Visual Studio solution files to build either from within Visual Studio, or from the command
line with MSBuild. CMake can also generate other build types but they aren't supported.
Enter at the Visual Studio Command prompt line:
The initial generation step is only required the first time a build directory is created. Subsequent
builds will regenerate the build files as required.
If you've closed the Visual Studio Command Prompt <<ChSetupPrepareCommandCom,prepare>> it again.
To generate the build files enter the following at the Visual Studio command prompt:
----
> nmake -f Makefile.nmake verify_tools
> cmake -DPYTHON_EXECUTABLE=c:/Python27/python -DENABLE_CHM_GUIDES=on -G "Visual Studio 12" ..\wireshark
----
This will check for the various tools needed to build Wireshark:
Adjusting the paths as required to Python and the wireshark source tree. To use a different generator
modify the -G parameter, cmake -G lists all the CMake supported generators, but only Visual Studio is
supported for Wireshark builds.
The CMake generation process will download the required 3rd party libraries (apart from Qt)
as required, then test each library for usability before generating the build files.
At the end of the CMake generation process the following should be displayed:
----
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Development/wsbuild32
----
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
If you get any other output, there is an issue in your envirnment that must be rectified before building.
Check the parameters passed to CMake, especially the -G option and the path to the Wireshark sources and
the environment variables WIRESHARK_BASE_DIR, WIRESHARK_TARGET_PLATFORM and QT5_BASE_DIR.
ERROR: The contents of 'E:\Wireshark\Wireshark-win32-libs\current_tag.txt' is (unknown).
It should be 2014-10-01.
Checking for required applications:
cl: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/cl
link: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/link
nmake: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/nmake
bash: /usr/bin/bash
bison: /usr/bin/bison
flex: /usr/bin/flex
env: /usr/bin/env
grep: /usr/bin/grep
/usr/bin/find: /usr/bin/find
peflags: /usr/bin/peflags
perl: /usr/bin/perl
C:\Python27\python.exe: /cygdrive/c/Python27/python.exe
C:\Qt\Qt5.3.0\5.3\msvc2013\bin\qmake: /cygdrive/c/Qt/Qt5.3.0/5.3/msvc2013/bin/qmake
sed: /usr/bin/sed
unzip: /usr/bin/unzip
wget: /usr/bin/wget
----
The "ERROR" at the start occurs because you haven't yet downloaded the third
party libraries and it can be ignored at this stage.
If you have problems with all the first three items (cl, link, nmake), check
that you opened a Visual Studio Command Prompt <<ChSetupPrepareCommandCom>>.
Unfortunately, the `link` command is defined both in Cygwin and in MSVC, each
with completely different functionality. You'll need the MSVC link. If your link
command looks something like: `/usr/bin/link` the link command of Cygwin takes
precedence over the MSVC one. To fix this, you can change your `PATH` environment
setting or simply rename `link.exe` in Cygwin. If you rename it, make sure to
remember that a Cygwin update may provide a new version of it.
Make sure that the other tools found are the Cygwin versions. Some build
problems have been caused by incompatible versions of `grep` and `unzip` provided by other installed applications.
==== Install Libraries
. If you've closed the Visual Studio Command Prompt <<ChSetupPrepareCommandCom,prepare>> it again.
. Run
+
--
----
> nmake -f Makefile.nmake setup
----
to download and install libraries using `wget`. This may take a while.
--
. If the download fails you may be behind a restrictive firewall. See the proxy
comment in <<ChToolsWget>>.
Note that 32-bit versions of the software require 32-bit versions of the
libraries and that 64-bit versions require 64-bit libraries. The build process
creates independent directories for each as needed. See
<<ChSetupPrepareCommandCom>>for how to open the required Visual Studio Command Prompt and
`WIRESHARK_TARGET_PLATFORM` to select either a 32- or 64-bit build.
[[ChWin32Build]]
==== Build Wireshark
@ -504,24 +459,28 @@ Now it's time to build Wireshark!
+
--
----
> nmake -f Makefile.nmake all
> msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln
----
to build Wireshark.
--
. Wait for Wireshark to compile. This will take a while, and there will be a lot of text output in the command prompt window
. For the QT version run `C:\Development\wireshark\wireshark-qt-release\Wireshark.exe` and make sure it starts.
. For the QT version run `C:\Development\wsbuild32\run\RelWithDebInfo\Wireshark.exe` and make sure it starts.
. For the older GTK version run `C:\Development\wireshark\wireshark-gtk2\Wireshark-gtk.exe`.
. For the older GTK version run `C:\Development\wsbuild32\run\RelWithDebInfo\wireshark-gtk.exe`.
. Open 'Help -> About'. If it shows your "private" program
version, e.g.: Version wireshark-major-minor-version:[].x-myprotocol123
congratulations! You have compiled your own version of Wireshark!
TIP: If compilation fails for suspicious
reasons after you changed some source files try to "distclean"
the sources and make "all" again
You may also open the Wireshark solution file (Wireshark.sln) in the Visual Studio IDE and build there.
TIP: If compilation fails for suspicious reasons after you changed some source
files try to clean the build files by running msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln /t:Clean
and then building the solution again.
The build files produced by CMake will regenerate themselves if required by changes in the source tree.
==== Debug Environment Setup
@ -545,8 +504,7 @@ you'll need NSIS.
. NSIS:
http://nsis.sourceforge.net[Download] and install NSIS
+
You may check the `MAKENSIS` setting in the file 'config.nmake' in the Wireshark
sources. Note that the 32-bit version of NSIS will work for both 32-bit and
Note that the 32-bit version of NSIS will work for both 32-bit and
64-bit versions of Wireshark.
Note: If you do not yet have a copy of vcredist_x86.exe or vcredist_x64.exe in ./wireshark-winXX-libs (where XX is 32 or 64) you will need to download the appropriate file and place it in ./wireshark-winXX-libs before starting this step.
@ -563,7 +521,8 @@ Note you must use the correct version of vcredist for your compiler, unfortunate
+
--
----
> nmake -f Makefile.nmake packaging
> msbuild /m /p:Configuration=RelWithDebInfo nsis_package_prep.vcxproj
> msbuild /m /p:Configuration=RelWithDebInfo nsis_package.vcxproj
----
to build a Wireshark installer.
--

View File

@ -396,29 +396,10 @@ to see what options you have.
==== Win32 native
Ensure you have correctly set your build environment as discussed in
<<ChSetupPrepareCommandCom>>
You should then cleanup any intermediate files, which are shipped for
convenience of Unix users, by typing at the command line prompt:
----
> nmake -f Makefile.nmake distclean
----
After doing this, typing at the command line prompt:
----
> nmake -f Makefile.nmake all
----
will start the whole Wireshark build process.
Follow the build procedure in <<ChWin32Build>> to build Wireshark.
After the build process has successfully finished, you should find a
`wireshark.exe` and some other files
in the root directory.
`Wireshark.exe` and some other files in the `run\RelWithDebInfo` directory.
[[ChSrcRunFirstTime]]
@ -467,12 +448,12 @@ be informative when things don't work as expected.
==== Win32 native
During the build all relevant program files are collected in a subdirectory
'wireshark-qt-release'. You can run the program from there by
`run\RelWithDebInfo`. You can run the program from there by
launching the Wireshark.exe executable.
The older GTK based version is also available in the 'wireshark-gtk'
The older GTK based version is also available in the same
subdirectory. You can run the program from there by launching the
Wireshark-gtk.exe executable.
wireshark-gtk.exe executable.
[[ChSrcDebug]]
@ -1139,22 +1120,12 @@ When building with CMake you must first build the 'nsis_package_prep' target,
followed by the 'nsis_package' target, e.g.
----
> msbuild nsis_package_prep.vcxproj
> msbuild nsis_package.vcxproj
> msbuild /m /p:Configuration=RelWithDebInfo nsis_package_prep.vcxproj
> msbuild /m /p:Configuration=RelWithDebInfo nsis_package.vcxproj
----
Splitting the packaging projects in this way allows for code signing.
For Nmake you will probably have to modify the MAKENSIS setting in the
'config.nmake' file to specify where the NSIS binaries are installed. In the
top-level source directory type:
----
> nmake -f makefile.nmake packaging
----
to build the installer.
[TIP]
.This might take a while
====
@ -1164,7 +1135,7 @@ It might take some time, even on fast machines.
If everything went well, you will now find something like:
'wireshark-setup-wireshark-version:[].exe' in
the 'packaging/nsis' directory.
the 'packaging/nsis' directory in the source tree.
[[ChSrcPortableApps]]
@ -1173,7 +1144,7 @@ the 'packaging/nsis' directory.
_PortableApps.com_ is an environment that lets users run popular applications
from portable media such as flash drives and cloud drive services.
Install the 'PortableApps.com Platform'. Install for ``all users,'' which
Install the 'PortableApps.com Platform'. Install for ``all users``, which
will place it in `C:\PortableApps`. Add the following apps:
- NSIS Portable (Unicode)
@ -1186,18 +1157,10 @@ When building with CMake you must first build the 'nsis_package_prep' target
'portableapps_package' target, e.g.
----
> msbuild nsis_package_prep.vcxproj
> msbuild portableapps_package.vcxproj
> msbuild /m /p:Configuration=RelWithDebInfo nsis_package_prep.vcxproj
> msbuild /m /p:Configuration=RelWithDebInfo portableapps_package.vcxproj
----
For Nmake, type the following in the top-level source directory
----
> nmake -f makefile.nmake packaging_papps
----
to build the installer.
[TIP]
.This might take a while
====

View File

@ -314,8 +314,6 @@ compiler, you'll need:
. Linker (`link.exe`)
. Make (`nmake.exe`)
. C runtime headers and libraries (e.g. 'stdio.h', 'msvcrt.lib')
. Windows platform headers and libraries (e.g.
@ -326,7 +324,7 @@ compiler, you'll need:
==== Toolchain Package Alternatives
The Wireshark 1.99.x releases are compiled using Microsoft Visual $$C++$$ 2013.
The Wireshark 2.0.x releases are compiled using Microsoft Visual $$C++$$ 2013.
The official Wireshark 1.12.x and 1.10.x releases are compiled using
Microsoft Visual $$C++$$ 2010 SP1.
The official 1.8 releases were compiled using
@ -358,7 +356,7 @@ Purchase required?:: http://www.visualstudio.com/en-us/downloads/download-visual
SDK required for 64-bit builds?:: No
config.nmake MSVC_VARIANT:: MSVC2013
CMake Generator: `Visual Studio 12`
.Visual C++ 2010 Express Edition
@ -368,7 +366,7 @@ Purchase required?:: http://www.microsoft.com/express/Downloads/#Visual_Studio_2
SDK required for 64-bit builds?:: Yes.
config.nmake MSVC_VARIANT:: MSVC2010EE
CMake Generator: `Visual Studio 10`
Remarks:: Installers created using express editions require a $$C++$$ redistributable
'$$vcredist_x86.exe$$' (3MB free
@ -387,7 +385,7 @@ Purchase required?:: Yes
SDK required for 64-bit builds?:: No
config.nmake MSVC_VARIANT:: MSVC2010
CMake Generator: `Visual Studio 10`
Remarks:: Building a 64-bit installer
requires a a $$C++$$ redistributable
@ -433,41 +431,6 @@ However, the version string may vary.
Documentation on the compiler can be found at
http://msdn.microsoft.com/en-us/library/wk21sfcf.aspx[Microsoft MSDN]
[[ChToolsNMake]]
==== nmake.exe (Make)
Nmake is part of the toolchain packages described
above.
Instead of using the workspace (.dsw) and projects (.dsp) files, the traditional
nmake makefiles are used. This has one main reason: it makes it much easier to
maintain changes simultaneously with the GCC toolchain makefile.am files as both
file formats are similar. However, as no Visual Studio workspace/project files
are available, this makes it hard to use the Visual Studio IDE e.g. for using
the integrated debugging feature.
After correct installation, typing at the Visual Studio Command line prompt (cmd.exe):
----
> nmake
----
should result in something like:
----
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.
----
However, the version string may vary.
Documentation on nmake can be found at
http://msdn.microsoft.com/en-us/library/dd9y37ha.aspx[Microsoft MSDN]
==== link.exe (Linker)
After correct installation, typing at the Visual Studio Command line prompt (cmd.exe):
@ -532,9 +495,8 @@ interested reader:
In all cases where '$$vcredist_x86.exe$$' or '$$vcredist_x64.exe$$' is
downloaded it should be downloaded to the directory into which the support
libraries for Wireshark have been downloaded and installed. This directory is
specified by the WIRESHARK_LIB_DIR setting in the 'config.nmake'. By default it
is 'C:\Development\wireshark-win32-libs'. It need not, and should not, be run after being
downloaded.
specified by the WIRESHARK_BASE_DIR or WIRESHARK_LIB_DIR environment variables.
It need not, and should not, be run after being downloaded.
===== msvcr120.dll / vcredist_x86.exe / vcredist_x64.exe - Version 12.0 (2013)
@ -609,8 +571,6 @@ be able to open .chm files from Wireshark and show the
online help. Both files are part of the SDK (standalone (P)SDK or MSVC
since 2002).
Simply set HHC_DIR in 'config.nmake' to use it.
[[ChToolsDebugger]]
==== Debugger
@ -625,19 +585,14 @@ otherwise the debugger will simply fail or you will only see a lot of garbage.
===== Visual Studio integrated debugger
You can use the integrated debugger of Visual Studio if your toolchain includes
it. As described on http://msdn.microsoft.com/en-us/library/0bxe8ytt.aspx[MSDN],
create an EXE project for your built copy,
i.e. C:\Development\Wireshark\wireshark-qt-release\Wireshark.exe, and then
start the debugger in the mormal way. To set a breakpoint, open the required
source file using the File -> Open -> File menu and set the breakpoint as normal.
it. Open the solution in your build directory and build and debug as normal with a
Visual Studio solution.
The normal build is an optimised release version so debugging can be a bit
difficult as variables are optimised out into registers and the execution
order of statements can jump around.
If you require a non-optimised version, then edit config.nmake and replace the /O2
flag from LOCAL_CFLAGS with /Od, clean up the build (nmake -f Makefile.nmake clean)
and then rebuild.
If you require a non-optimised version, then build using a debug configuration.
[[ChToolsMSDebuggingTools]]
@ -659,11 +614,14 @@ PS:\> choco install windbg
To debug Wireshark using WinDbg, open the built copy of Wireshark using
the File -> Open Executable... menu,
i.e. C:\Development\Wireshark\wireshark-qt-release\Wireshark.exe. To set a
i.e. C:\Development\wsbuild32\run\RelWithDebInfo\Wireshark.exe. To set a
breakpoint open the required source file using the File -> Open Source File...
menu and then click on the required line and press F9. To run the program,
press F5.
If you require a non-optimised version, then build using a debug configuration, e.g.
`msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln`.
[[ChToolsBash]]
=== bash
@ -1145,60 +1103,6 @@ The Windows native Git tools provide patch. A native Windows patch package can b
http://gnuwin32.sourceforge.net/[]. The
installation should be straightforward.
[[ChToolsWget]]
=== Windows: GNU wget (optional)
GNU wget is used by the Nmake toolchain to download files from the internet
using the command line. It is not needed when building with CMake.
GNU wget is available for most of the UNIX-like platforms and as the wget
package from the <<ChToolsCygwin,Cygwin setup>> and also using Chocolatey.
At the time of writing the native Chocolatey wget package had incomplete
CA certificate support. As a result the Cygwin package is recommended:
----
PS$> choco install wget -source cygwin
----
You will only need wget if you want to use the Windows automated library
download. See <<ChLibsSetup>>for details.
If GNU wget isn't already installed or available as a package for your platform
(well, for Windows it is available as a Cygwin package), you can get it at
http://www.gnu.org/software/wget/wget.html[].
If wget is trying to download files but fails to do so, your Internet connection
might use an HTTP proxy. Some Internet providers use such a proxy and it is
common in many company networks today. Wireshark's setup script will try to
discover your proxy settings automatically, but you may need to set the
environment variable 'HTTP_PROXY' by hand before using wget. For example, if you
are behind proxy.com which is listening on port 8080, you have to set it to
something like:
----
set HTTP_PROXY=http://proxy.com:8080/
----
If you are unsure about the settings, you might ask your system administrator.
[[ChToolsUnzip]]
=== Windows: GNU unzip (optional)
GNU unzip is used to, well, unzip the zip files downloaded using the wget tool.
As with wget it is not needed when building with CMake.
GNU unzip is available for most of the UNIX-like platforms and as the unzip
package from the <<ChToolsCygwin,Cygwin setup>>.
You will only need unzip if you want to use the Windows automated library
download. See <<ChLibsSetup>>for details.
If GNU unzip isn't already installed or available as a package for your platform
(well, for Windows it is available as a Cygwin package), you can get it at
http://gnuwin32.sourceforge.net/packages/unzip.htm[].
[[ChToolsNSIS]]
=== Windows: NSIS (optional)
@ -1229,8 +1133,7 @@ files.
To install it, do the following:
* Download the latest PortableApps.com Platform release from
http://portableapps.com/[]. `config.nmake` uses the ``Local
All Users'' install location (`C:`) by default.
http://portableapps.com/[].
* Install the following applications in the PortableApps.com environment:

View File

@ -1,7 +1,7 @@
++++++++++++++++++++++++++++++++++++++
<!-- WSDG Chapter Works -->
++++++++++++++++++++++++++++++++++++++
[[ChapterWorks]]
== How Wireshark Works
@ -29,10 +29,10 @@ the Qt UI in 'ui/qt'.
****
The function blocks in more detail:
$$GTK+ 2$$:: Handling of all user input/output (all windows, dialogs and such).
$$GTK+ 2$$:: Handling of all user input/output (all windows, dialogs and such).
Source code can be found in the 'ui/gtk' directory.
Core:: Main "glue code" that holds the other blocks together. Source
Core:: Main "glue code" that holds the other blocks together. Source
code can be found in the root directory.
Epan:: Ethereal Packet ANalyzer -- the packet analyzing engine.
@ -41,13 +41,13 @@ the following APIs:
* Protocol Tree. Dissection information for an individual packet.
* Dissectors. The various protocol dissectors in
* Dissectors. The various protocol dissectors in
'epan/dissectors'.
* Dissector Plugins - Support for implementing dissectors as separate modules.
Source code can be found in 'plugins'.
* Display Filters - The display filter engine at
* Display Filters - The display filter engine at
'epan/dfilter'.
Wiretap:: The wiretap library is used to read and write capture files in libpcap,
@ -71,8 +71,8 @@ capture filter syntaxes.
=== Capturing packets
Capturing takes packets from a network adapter and saves them to a file
on your hard disk.
Capturing takes packets from a network adapter and saves them to a file
on your hard disk.
Since raw network adapter access requires elevated privileges these functions
are isolated into the `dumpcap` program. It's only this program that needs these
@ -94,7 +94,7 @@ In addition to this, as one of its strengths, Wireshark can read and write files
in many different file formats of other network capturing tools. The wiretap
library, developed together with Wireshark, provides a general purpose interface
to read and write all the file formats. If you need to add support for another
capture file format this is the place to start.
capture file format this is the place to start.
[[ChWorksDissectPackets]]
@ -103,7 +103,7 @@ capture file format this is the place to start.
While Wireshark is loading packets from a file each packet is dissected.
Wireshark tries to detect the packet type and gets as much information from the
packet as possible. In this run though, only the information shown in the packet
list pane is needed.
list pane is needed.
As the user selects a specific packet in the packet list pane this packet will
be dissected again. This time, Wireshark tries to get every single piece of
@ -112,4 +112,4 @@ information and put it into the packet details pane.
++++++++++++++++++++++++++++++++++++++
<!-- End of WSDG Chapter Works -->
++++++++++++++++++++++++++++++++++++++