http://www.perlmonks.org?node_id=1007247


in reply to Re^3: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
in thread if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location

you need .... -DLIBXML_STATIC

Yes, -DLIBXML_STATIC is the hack I was after.

The problem with Makefile.PL is it rewrites my LIBS/INC arguments to what it thinks should be -- doesn't let me choose between static/dynamic

I think you should be able to do:
LIBS="-L/path/to/lib -lxml2" (for static) LIBS="-L/path/to/lib -lxml2.dll" (for dynamic)
After all that, I still don't get the failure that you do with Digest::SHA1 and XML::LibXML.
I do, however, strike the same error with PDL::Graphics::PLplot (whenn PDL::Graphics::PLplot is built as part of the PDL build). For that module, switching to a build against dynamic PLplot libraries doesn't help.
Instead, if I want the PDL/Graphics/PLplot/PLplot.dll to be loadable, I have to build PDL::Graphics::PLplot separately from the PDL build.
(The part about the dll not being a valid win32 app is just straight out bullshit, afaict ... objdump has no issue with it, so I'm thinking the real problem is something else.)

Unfortunately, we'll probably have to wait until someone capable of debugging the problem comes up against it for himself ... *then* we might find out what's going awry.

Cheers,
Rob

Replies are listed 'Best First'.
Re^5: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
by Anonymous Monk on Dec 05, 2012 at 09:46 UTC

    I think you should be able to do:

    I didn't actually try that, I did this crazy thing where I give the full path to the file I want to link against (...libxml2.dll.a), it usually works