[Solved] QWT Cannot load library, "The specified procedure could not be found"
-
I downloaded and built QWT, added the QT_PLUGIN_PATH to pick up the designer plugin. When I start QtCreator, under Tools->Form Editor->About Qt Designer Plugins, there is a failure message for the qwt plugin dll stating "Cannot load library C:/Qwt-6.1.2/plugins/designer/qwt_designer_plugin.dll: The specified procedure could not be found".
I've been trying to debug this for a few hours now. Found one place that said QtCreator binaries are built in msvc, so if you built qwt under mingw (which I did at first), that might cause this problem. So I blew away my qwt, rebuilt it using msvc and still get the error. Then found info about needing to put the qwt.dll into the QtCreator/bin directory, which I did, and still nothing.
Probably more importantly than just fixing the problem, how on earth do I get better debug info from QtCreator about what's going wrong? The error I get has nothing useful in it, is there some way to get something more useful?
-
Hi,
You can start Qt Creator from the command line with QT_DEBUG_PLUGINS=1 so you'll see what happens
-
First of all forget about everything you read in any forums - it is full of outdated or even wrong recipes. Instead read http://qwt.sourceforge.net/qwtinstall.html#USEPLUGIN.
Usually you have to build and install Qwt twice. For the second build ( the one for the creator ) you have to find out which compiler and Qt version was used to build the creator. Then enable QwtDesignerSelfContained in qwtconfig.pri and build and install Qwt with the same combination as the creator had been built ( of course in release mode ).
QwtDesignerSelfContained has the effect, that the complete qwt code is compiled into the plugin - so the plugin doesn't need the qwt.dll at all !
Then all you need to do is to adjust the QT_PLUGIN_PATH so that the creator is able to find the plugin ( if not being installed into one of the default directories ). -
I tried the QT_DEBUG_PLUGINS=1 and starting from command line, but didn't see anything from it. Not sure if the prints were coming from somewhere besides the command line or what, but then I gave up and decided to just build QtCreator instead.
I was using the binary download of QtCreator and trying to avoid re-building QtCreator so I was rebuilding QWT using MSVC. Looking at dependency walker, I noticed QtCreator has a dependency on msvcr100 (or something similar) and my re-build QWT had a dependency on msvcrt (or something similar). Couldn't figure out VC, so I gave up and just rebuilt QtCreator using mingw (which I've been building everything in), then used my mingw built version of QWT. Little annoying as QtCreator took somewhere in the range of 2 hours to build for me.
After re-building QtCreator w/mingw and using my mingw built version of QWT, it's working correctly, so marking the title with solved.