Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] base64.x & crypt-md5.x; linking issues using them.

From: Brian Vandenberg <phantal@xxxxxxxxx>
Date: Tue, 19 Sep 2006 12:24:27 -0600
My apologies in advance if this ends up being a duplicate. I sent it earlier before my request to be added to the list had been approved.

I'm writing a plugin (win32 dev environment) in which I need access to functionality in base64.x and crypt-md5.x. I had been under the [faulty?] assumption that the object files for these two are compiled into libwireshark.lib, which is already being linked into my plugin:

...
LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib
...
$(PLUGIN_NAME).dll $(PLUGIN_NAME).exp $(PLUGIN_NAME).lib : $(OBJECTS) $(LINK_PLUGIN_WITH)
  link -dll /out $(PLUGIN_NAME).dll $(LDFLAGS) $(OBJECTS) \
     $(LINK_PLUGIN_WITH) $(GLIB_LIBS) $(PCRE_LIBS) zdll.lib
...

However, I still get the following link errors:

error: LNK2001: unresolved external symbol _md5_finish
error: LNK2001: unresolved external symbol _md5_append
error: LNK2001: unresolved external symbol _md5_init
error: LNK2001: unresolved external symbol _epan_base64_decode

My apologies in advance for the likely noobish question, I'm just not sure what I need to link in, or what to alter. I've not seen any examples of plugins that use them, and since the non-plugin dissectors are all linked either at compile or runtime when building wireshark itself, I'm supposing that I won't glean anything useful by looking at the wireshark/dissectors makefile (which hasn't stopped me from trying).

If anyone has some suggestions, they'll be welcome.

-Brian