Wireshark-dev: Re: [Wireshark-dev] Compiling a Dissector

From: Jonathan Walker <jwalker@xxxxxxxxxxxx>
Date: Thu, 20 May 2010 07:25:45 -0700
Thanks for the reply, Stephen (and Jaap).

The reason I was asking is because I recently developed a dissector that would successfully compile, provided the necessary wireshark libraries.  However, it would only load in Wireshark on machines with VS2005 installed (which is the version of VS I used to build the Wireshark source, and the dissector if it uses the lib as provided in config.nmake (?) ).  I have been wondering why a dissector requires libraries from a specific VS in the first place?  It doesn't seem necessary.  Then again, I probably don't have as deep an understanding of the source as the developers.  Or, maybe it's just an issue with compatibility between different Microsoft VS versions?

Thanks,
J. Walker

-----Original Message-----
From: wireshark-dev-bounces@xxxxxxxxxxxxx [mailto:wireshark-dev-bounces@xxxxxxxxxxxxx] On Behalf Of Stephen Fisher
Sent: Tuesday, May 18, 2010 7:12 PM
To: Developer support list for Wireshark
Subject: Re: [Wireshark-dev] Compiling a Dissector

On Tue, May 18, 2010 at 09:03:39AM -0700, Jonathan Walker wrote:

> Is this to say that there is no possible way to compile a dissector
> that can successfully run with Wireshark, by simply compiling it with
> all the required libraries provided by the previously-built Wireshark?
> In other words, can a dissector be updated and re-compiled with the
> same libraries from a previously-built Wireshark? (only need to build
> wireshark from source once).

The suggestion you quoted is aimed at making sure that you can
successfully compile Wireshark in your environment before modifying it.
That way, you know that any problems you encounter are from what has
been modified.

However, you did bring up some good questions.  The only "supported"
(meaning we'll help you make sure it works) way to build dissectors is
to compile them with Wireshark from source and use them in that same
build of Wireshark.

You can usually take a compiled plug-in and drop it into another
installation (same operating system and Wireshark version) and have it
work.  Sometimes this even works between different minor revisions of
Wireshark, but it is *not* guaranteed to work - it could break with any
new version.  This breakage is usually caused by changes to internal
Wireshark dissector structure variables.  We don't guarantee that the
API (functions used in source code) or ABI (compiled files) will remain
the same and functional between Wireshark versions or even different SVN
revisions of developer trees of Wireshark.

If you are developing a plug-in, you can recompile just the plug-in
while in the source tree of the initially built Wireshark code and then
reinstall it.  If it is a built-in dissector (which is preferred,
especially if you're going to share it with everyone for inclusion in
Wireshark source code), then you need to recompile at least part of the
Wireshark tree.  Some of the developers here have ways to just recompile
parts of the source tree to speed things up if you're just changing a
dissector, but I just recompile the whole thing every time in case I
changed something outside of a dissector.


--
Steve
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe

This e-mail and any files transmitted with it are ShoreTel property, are confidential, and are intended solely for the use of the individual or entity to whom this e-mail is addressed.  If you are not one of the named recipient(s) or otherwise have reason to believe that you have received this message in error, please notify the sender and delete this message immediately from your computer.  Any other use, retention, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited