Ask Your Question
0

Errors building on Windows

asked 2019-07-30 12:50:46 +0000

I am coming back to building and debugging Wireshark after a while and cannot get it to build any more. I had no problem previously but the build method seems to have changed again. I followed the instructions here but can't get CMake to set up properly:

cmake -G "Visual Studio 15 2017 Win64" ..\wireshark
-- The C compiler identification is MSVC 19.16.27027.1
-- The CXX compiler identification is MSVC 19.16.27027.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Generating build using CMake 3.10.1
-- Found POWERSHELL: C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe
-- Building for win64 using Visual Studio 15 2017 Win64
Working in C:\Users\robcra01\Documents\WiresharkUM\Clean\wireshark-win64-libs
Tag 2019-07-17 found. Skipping.
-- CMake build type: RelWithDebInfo
-- V: 3.1.1-Arm, MaV: 3, MiV: 1, PL: 1, EV: -Arm.
-- Performing Test C_Qspectre_VALID
-- Performing Test C_Qspectre_VALID - Success
-- Performing Test CXX_Qspectre_VALID
-- Performing Test CXX_Qspectre_VALID - Success
-- Linker flags: /LARGEADDRESSAWARE /MANIFEST:NO /INCREMENTAL:NO /RELEASE /guard:cf
-- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.21.0.windows.1")
-- Found GLIB2: C:/Users/robcra01/Documents/WiresharkUM/Clean/wireshark-win64-libs/vcpkg-export-20190318-win64ws/installed/x64-windows/lib/glib-2.0.lib (found suitable version "2.52.3", minimum required is "2.32.0")
-- Found GMODULE2: C:/Users/robcra01/Documents/WiresharkUM/Clean/wireshark-win64-libs/vcpkg-export-20190318-win64ws/installed/x64-windows/lib/gmodule-2.0.lib
-- Found GTHREAD2: C:/Users/robcra01/Documents/WiresharkUM/Clean/wireshark-win64-libs/vcpkg-export-20190318-win64ws/installed/x64-windows/lib/gthread-2.0.lib
-- Found GCRYPT: C:/Users/robcra01/Documents/WiresharkUM/Clean/wireshark-win64-libs/libgcrypt-1.8.3-win64ws/bin/libgcrypt-20.lib (found suitable version "1.8.3", minimum required is "1.4.2")
-- Found LEX: C:/Program Files/win_flex_bison/win_flex.exe
-- Found YACC: C:/Program Files/win_flex_bison/win_bison.exe
-- Found Perl: C:/cygwin64/bin/perl.exe (found version "5.26.3")
-- Found PythonInterp: C:/Users/robcra01/AppData/Local/Programs/Python/Python37/python.exe (found suitable version "3.7.2", minimum required is "3.4")
-- Found LIBSSH: C:/Users/robcra01/Documents/WiresharkUM/Clean/wireshark-win64-libs/libssh-0.7.3-win64ws/lib/ssh.lib (found suitable version "0.7.3", minimum required is "0.6")
-- Found PCAP: C:/Users/robcra01/Documents/WiresharkUM/Clean/wireshark-win64-libs/WpdPack/Lib/x64/wpcap.lib
-- Looking for pcap_get_selectable_fd
-- Looking for pcap_get_selectable_fd - not found
-- Looking for pcap_set_tstamp_precision
-- Looking for pcap_set_tstamp_precision - not found
-- Looking for ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-07-30 13:14:37 +0000

grahamb gravatar image

Can you create a VM and use that for your Wireshark build? This is the preferred option as it keeps all the Wireshark bits off your work machines.

The CMake error indicates it could not find POD. This is a Perl utility that is usually installed along with Perl. As the Perl you are using is from Cygwin, which isn't the recommended Perl in the Developers Guide, you will have to make sure that your Perl installation provides POD, using the Cygwin package manager.

The asciidoctorj, xsltproc and docbook are\were very awkward to install without chocolatey, hence Gerald created those chocolatey packages to make life easier. You can look at the tools\chocolateyinstall.ps1 file for each package to see what it's doing and replicate that manually. Please submit changes to the documentation to help others when you work out what is required.

The build with Cygwin was a terrible hodgepodge of Windows and Posix and also used a separate makefile to the other 2 build systems in use at the time. Now we have one build system, CMake, to maintain. Building on Windows, if you follow the instructions, is now so much easier.

Of course, if you have restrictions placed upon you that prevents you following the Developers Guide instructions then you will have to make your own way. If the owners of your machine require you to build Wireshark, then why won't they let you install the required software to do so?

edit flag offensive delete link more

Comments

It says it couldn't find pod2html but I have installed it using Cygwin installation. It finds Perl from Cygwin OK but then the CMake modules in Wireshark don't look in Cygwin? This seems inconsistent to me. The same with flex and bison - perfectly good executables under Cygwin but not found, so I have to install the Windows versions.

robertc808 gravatar imagerobertc808 ( 2019-07-30 13:59:24 +0000 )edit

Also, I want to use Windows as VS is still by far the best debugging environment. Trying to debug building in Linux will be much more painful and I am not a MacOS user.

robertc808 gravatar imagerobertc808 ( 2019-07-30 14:00:50 +0000 )edit

For CMake to find the required POD executables (pod2man and pod2html), they will need to be on your path, or on one of the standard *Nix paths (/bin /usr/bin /usr/local/bin /sbin). Strawberry Perl puts pod2man.bat and pod2html.bat in the Strawberry\Perl\bin directory which is placed on the System path by (I think) the Strawberry installer.

If you wish to continue with Cygwin Perl, then you'll have to arrange for the CMake FindPod module to find the required files, probably by putting the Cygwin bin dir on the path. I wouldn't be surprised though, if this inadvertently finds "other" things and breaks your build elsewhere.

You do know that you can run Windows (or any other OS) in a VM? I've used Windows VM's for my Wireshark development for over a decade using a mix of VirtualBox and Hyper-V as the hypervisor.

grahamb gravatar imagegrahamb ( 2019-07-30 14:36:13 +0000 )edit

OK, I might try the VM route. Thanks for the info.

robertc808 gravatar imagerobertc808 ( 2019-07-30 16:31:24 +0000 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2019-07-30 12:50:46 +0000

Seen: 29 times

Last updated: Jul 30