Troubleshooting Linker error (Symbol Undefined)

Jesse Phillips jessekphillips+D at gmail.com
Sun Sep 30 21:47:19 PDT 2012


I'm trying to identify what change has resulted in getting the 
error:

     Error 42: Symbol Undefined _VarCmp at 16

I was doing my not so routine updates for the Juno Class 
Libraries. This symbol is the VARIANT compare function provided 
by oleaut32.lib on Windows. It is a very nice function and has 
been used in Juno for some time. I tracked down the most recent 
working commit and compiler. The only signature changed made was 
const parameters (reverting this did not help). All other changes 
were needed in one form or another to compile in the newer dmd 
versions.

Using the last known working compiler I attempted a reduced test 
to see if I can narrow it down as a compiler/linker bug/change. 
What I ended up with was a test case which exhibited the same 
behavior on this known working compiler (2.057/2.058).

http://dpaste.dzfl.pl/233d037d

This is not intended to run, I've changed the VARIANT definition 
to reduce dependencies. Hopefully it is the same size, but I did 
not make much effort. I've tried different export types, and 
using pointers instead of ref.

This obviously won't link in Linux, but otherwise any suggestions?


More information about the Digitalmars-d-learn mailing list