Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Reference to a function in libxml2.dll that isn't there



  • Hi.

    The Windows version of one of our products is deployed with several DLLs from Qt v597, including libxml2.dll.

    One of our customers is having a problem where an error box appears saying a reference was made to a function in libxml2.dll named xmlXPtrEval() that doesn't exist. And indeed, there is no function by this name in the libxml2.dll that comes with Qt v597. As far as I can tell, the call is dynamic (i.e., the attempt to find the function is done at run-time) and external to our application, as libxml2.dll is not a DLL upon which our application depends.

    Our customer has other copies of libxml2.dll on his system in various locations. He maintains that all of these other copies of libxml2.dll have this xmlXPtrEval(); it's only the libxml2.dll that is bundled with our application that doesn't have it.

    Is the libxml2.dll that comes with Qt v597 supposed to have this function?


  • Lifetime Qt Champion

    Hi
    My Qt do not have a libxml2.dll
    Where in c:\Qt is yours located ?

    Maybe it does have one in 5.9 ?
    Seem not in 5.14



  • @mrjj Ah, good point. It looks like libxml2.dll might come from the WebKit add-on that we install over top of Qt itself.


  • Lifetime Qt Champion

    @dcoup
    Ah yes that would explain it :)

    But not why your app then complains about that function at that customer but not on your own
    system.

    I would use a tool like
    https://github.com/lucasg/Dependencies

    and then inspect the .exe on your system and see what it hooks up to. And
    then do the same at customer and see.

    Do note if the DLL is loaded via LoadLibrary, it will not be shown.
    Most tools cannot detect that.



  • @mrjj

    As I look at this more, I'm not sure that the call is loaded via LoadLibrary().

    I've used Dependencies and similar tools. Our app's own .exe is not dependent on libxml2.dll. I've searched the Qt v597 source code, but I found no call to xmlXPtrEval(). I've also searched the source code for the QtWebKit add-on, but again, no references to xmlXPtrEval().

    This one customer is the only customer in the world who is encountering this problem. Something he's loading is trying to call xmlXPtrEval(), and that function isn't in the libxml2.dll that comes with the QtWebKit add-on.


  • Lifetime Qt Champion

    @dcoup
    so most likely he has something in his user path that loads something so when your app starts
    there is a version conflict.

    I would ask him to create a new user account on his box if possible and see if issue persists.


Log in to reply