First time here? Check out the FAQ!
THIS IS A TEST INSTANCE. Feel free to ask and answer questions, but take care to avoid triggering too many notifications.
0

Errors building on Windows

  • retag add tags

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)
robertc808's avatar
1
robertc808
asked 2019-07-30 12:50:46 +0000
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

2 Answers

0

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?

grahamb's avatar
23.8k
grahamb
answered 2019-07-30 13:14:37 +0000
edit flag offensive 0 remove flag delete link

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's avatar robertc808 (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's avatar robertc808 (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's avatar grahamb (2019-07-30 14:36:13 +0000) edit

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

robertc808's avatar robertc808 (2019-07-30 16:31:24 +0000) edit
add a comment see more comments
0

Hi,

I'm building with msys2 environment, and adding C:\msys64\usr\bin and C:\msys64\usr\bin\core_perl to PATH solved this issue for me.

orgads's avatar
1
orgads
answered 2019-12-10 20:34:09 +0000
edit flag offensive 0 remove flag delete link

Comments

Chuckc's avatar Chuckc (2022-10-14 16:57:31 +0000) edit
add a comment see more comments

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss.

Add Answer