Wireshark-dev: [Wireshark-dev] LNK2001: unresolved external symbol _ett_nds -> RESOLUTION
From: "CHRIS AKERS" <[email protected]>
Date: Fri, 21 Nov 2008 09:32:32 +0000

I sent this yesterday and have since found what the problem was and
figured I'd post the solution in case anyone comes up against it and
tries searching the archives.  It's a typical school-boy error but
took a bit of detecting because it wasn't immediately obvious.

Basically the problem was Python.  Due to reasons of space I've had to
move a lot of the stuff onto my D: which means changes to
config.nmake.  I'd installed Python onto the D drive and changed the
entry in config.nmake but didn't notice it was pointing to Python26
whereas I still had Python24 so it was unable to assign PYTHON.
Further down the build, when trying to compile the dissectors, the
Makefile.nmake in the epan\dissectors directory checks to see if
PYTHON is defined and, if not, renames the file packet-ncp.c to
packet-ncp.c.save and creates a fake, empty file called packet-ncp.c
(the odd files I found described in the original mail) - presumably to
get it to compile.  The comments in Makefile.nmake say this is because
you cannot compile packet-ncp without Python.  Unfortunately the
ett_nds symbol is defined in this source and this is what knocked over
the build.

To fix the issue I corrected the path in config.nmake and the build
completed.  Before rerunning the build, though, I had to get the
original packet-ncp back from SVN.

I'm under the impression that Python is pretty much a requirement for
building Wireshark so it seems odd to me that there would be a path
around it.  I would expect (and probably prefer) the build to drop out
at this point - This is the kind of Build problem that should be
immediately obvious but actually took a bit of detective work.

Many Thanks,

---------- Forwarded message ----------
From: CHRIS AKERS <[email protected]>
Date: Nov 20, 2008 10:59 AM
Subject: LNK2001: unresolved external symbol _ett_nds
To: Developer support list for Wireshark <[email protected]>


I had earlier problems compiling so have refreshed my box with Visual
Studio 2008 Team Studio (inc SDK).

I've also completely refreshed the source from SVN (deleted local first).

verify_tools, setup and distclean all run with no problems but when I
run a 'make all' I'm now getting:

'Creating library libwireshark.lib and object libwireshark.exp
dissectors.lib(packet-ncp-sss.obj) : error LNK2001: unresolved
external symbol _ett_nds'

The 'err_nds' symbol used in packet-ncp-sss.c does not seem to be
defined anywhere apart from in a file called 'packet-ncp.c.save' which
appears in \wireshark\epan\dissectors each time I try to build.  It
looks like the build process is creating this file - the distclean
deletes them each time it's run - but I'm unsure how this works.

Again, I have tried the usual methods to search for an answer but
can't find anything - nothing in SVN log that suggests this has
changed recently.  Any pointers would be greatly appreciated.

* Visual Studio 2008 with Visual Studio 2008 SDK
* Windows XP Professional

Many Thanks,