Windows Embedded Compact 7 - Unable to import library Qt5Gui.dll
-
Hi, I successfully build Qt for Windows Embedded Compact 7.
configure -platform win32-msvc2008 -xplatform wince70embedded-armv4i-msvc2008 -no-accessibility -opengl es2
Now I created a simple application using QML.
I copy my exe application to root folder of my device
Also the files from (qt5gui.dll, qt5qml.dll, qt5core.dll) took from the folder (..\qt-everywhere-opensource-src-5.4.1\qtbase\bin) but I'm getting the following error "Unable to import library Qt5Gui.dll !".Did I miss something ?
Also, it is normal that I'm having this on QtCreator : Screen shot
Best regards
-
Ok those files was missing :
\msvcr90.dll \msvcr90d.dll) \platforms\qwindows.dll \platforms\qwindowsd.dll
Now widget application are well working. But while I start a QML application I got no error message but nothing appears.
I have the following file present too :
\windows\libegl.dll \windows\libGLES_CM.dll \windows\libGLESv1_CM.dll \windows\libGLESv2.dll
Did I miss something else ?
-
Hi SGaist,
First of all, thank your for your support. It really appreciated :)
I follow the instructions of the link you provide me but I'm not getting anything from executing my QML application demo. There nothing special in it, only a blue rectangle. While executing the exe file it returns immediately without any error.
Here is the structure of my deployment : Folder structure
I did tried using Dependency Walker to test agains all dependency but all seems to be good.
Here is the configuration of my build :
I modify the SDK name in the qmake.conf :
CE_SDK = BBBWinCE7_SDK
The configuration line :
configure -platform win32-msvc2008 -xplatform wince70embedded-armv4i-msvc2008 -no-accessibility -opengl es2
Run nmake and the the compilation succeed. I was not aware at this time that we can use shadow building to get a deploy folder... but for now this is not important.
And the proof of the SDK installation : SDK Folder
The last idea I had was to start debugging using Visual Studio. So I Install the Visual Studio Add-in from there qt-vs-addin-1.2.4. Once I open Visual Studio :
1 - I click on the Qt5 menu
2 - I click on the Qt Options
3 - Button Add
4 - In the version name : BBBWinCE7_SDK
5 - In the path : H:\DevelopmentTests\qt-everywhere-opensource-src-5.4.1\qtbase
6 - Click on the OK buttonHere is the error I'm getting : Error image
I'm very desperate and out of idea... Hope someone will propose me some other solutions.
Best regards,
-
I finally succeed to get something displaying after launching the QML application :) My structure was not entirely correct.
Here is what I have now :
Deploy Folder\ :. | msvcr90.dll | Qt5Core.dll | Qt5Declarative.dll | Qt5Gui.dll | Qt5Network.dll | Qt5OpenGL.dll | Qt5Qml.dll | Qt5Quick.dll | Qt5QuickTest.dll | Qt5Script.dll | Qt5ScriptTools.dll | Qt5Sql.dll | Qt5Svg.dll | Qt5Test.dll | Qt5Widgets.dll | Qt5Xml.dll | Qt5XmlPatterns.dll | MyApplication.exe // My Application | +---imageformats | qdds.dll | qddsd.dll | qgif.dll | qgifd.dll | qicns.dll | qicnsd.dll | qico.dll | qicod.dll | qjpeg.dll | qjpegd.dll | qmng.dll | qmngd.dll | qsvg.dll | qsvgd.dll | qtga.dll | qtgad.dll | qtiff.dll | qtiffd.dll | qwbmp.dll | qwbmpd.dll | qwebp.dll | qwebpd.dll | +---platforms | msvcr90.dll | qminimal.dll | qoffscreen.dll | qwindows.dll | +---qml | \---MyApplication // Nothing here as I have a qrc file, so all is embedded in exe ? +---Qt | +---labs | | +---folderlistmodel | | | plugins.qmltypes | | | qmldir | | | qmlfolderlistmodelplugin.dll | | | qmlfolderlistmodelplugind.dll | | | | | \---settings | | plugins.qmltypes | | qmldir | | qmlsettingsplugin.dll | | qmlsettingsplugind.dll | | | \---WebSockets | declarative_qmlwebsockets.dll | declarative_qmlwebsocketsd.dll | plugins.qmltypes | qmldir | +---QtBluetooth | declarative_bluetooth.dll | declarative_bluetoothd.dll | plugins.qmltypes | qmldir | +---QtGraphicalEffects | | Blend.qml | | BrightnessContrast.qml | | Colorize.qml | | ColorOverlay.qml | | ConicalGradient.qml | | Desaturate.qml | | DirectionalBlur.qml | | Displace.qml | | DropShadow.qml | | FastBlur.qml | | GammaAdjust.qml | | GaussianBlur.qml | | Glow.qml | | HueSaturation.qml | | InnerShadow.qml | | LevelAdjust.qml | | LinearGradient.qml | | MaskedBlur.qml | | OpacityMask.qml | | qmldir | | RadialBlur.qml | | RadialGradient.qml | | RectangularGlow.qml | | RecursiveBlur.qml | | ThresholdMask.qml | | ZoomBlur.qml | | | \---private | FastGlow.qml | FastInnerShadow.qml | FastMaskedBlur.qml | GaussianDirectionalBlur.qml | GaussianGlow.qml | GaussianInnerShadow.qml | GaussianMaskedBlur.qml | SourceProxy.qml | +---QtLocation | declarative_location.dll | declarative_locationd.dll | plugins.qmltypes | qmldir | +---QtMultimedia | declarative_multimedia.dll | declarative_multimediad.dll | plugins.qmltypes | qmldir | Video.qml | +---QtNfc | declarative_nfc.dll | declarative_nfcd.dll | plugins.qmltypes | qmldir | +---QtPositioning | declarative_positioning.dll | declarative_positioningd.dll | plugins.qmltypes | qmldir | +---QtQml | +---Models.2 | | modelsplugin.dll | | modelsplugind.dll | | qmldir | | | \---StateMachine | plugins.qmltypes | qmldir | qtqmlstatemachine.dll | qtqmlstatemachined.dll | +---QtQuick | +---LocalStorage | | plugins.qmltypes | | qmldir | | qmllocalstorageplugin.dll | | qmllocalstorageplugind.dll | | | +---Particles.2 | | particlesplugin.dll | | particlesplugind.dll | | plugins.qmltypes | | qmldir | | | +---Window.2 | | plugins.qmltypes | | qmldir | | windowplugin.dll | | windowplugind.dll | | | \---XmlListModel | plugins.qmltypes | qmldir | qmlxmllistmodelplugin.dll | qmlxmllistmodelplugind.dll | +---QtQuick.2 | plugins.qmltypes | qmldir | qtquick2plugin.dll | qtquick2plugind.dll | +---QtSensors | declarative_sensors.dll | declarative_sensorsd.dll | plugins.qmltypes | qmldir | +---QtTest | plugins.qmltypes | qmldir | qmltestplugin.dll | qmltestplugind.dll | SignalSpy.qml | TestCase.qml | testlogger.js | \---QtWebChannel declarative_webchannel.dll declarative_webchanneld.dll plugins.qmltypes qmldir
But I still have a problem, I'm using svg image in my qrc file and display it using an image element (source : "qrc:/img..."). On Windows Desktop there no problem the image are display but on Windows Embedded Compact 7 they are not display. More, to allow application to start I have to rename the folder imageformats else the application do nothing. While the imageformats folder is here the application start but I have no images. What could be the problem ? A missing pluging ?
About the Visual Studio setup problem versus the SDK I did not found any solution yet, this is VERY, VERY annoying !
Best regards,
-
Do you have the svg plugin on WEC7 ?
-
That part looks good
-
- list itemI create a QtQuick2 empty exemple.
- Copy the executable on the SDCard deploy folder, \DeployFolder
- I copy the folder \qml to *\DeployFolder*
- I copy the folder \plugins to *\DeployFolder*
- I copy ALL the DLL of \bin to *\DeployFolder*
- I copy the file msvcr90.dll to *\DeployFolder*
Still no result, the application is hanging while starting, no output. What could be missing ? I've put ALL what exists from the build directory of QT ! This is very annoying :(
The SVG seems to be buggy on Windows CE or there something that I don't understand yet.
Somebody has another idea ?
-
Then let's get back to the basics, can you run a simple hello world ?
-
Yes without any problem.
I can also run application based Widget.
I can also run QtQuick2 application if I don't include the /imageformats folder. But this way I cannot use any svg images or any other image that need plugin inside of this folder. As long as I include the /imageformats folder, the application start but I have no display.
-
Ok, then do you have the problem only with the svg plugin or any of the other ?
-
Here is what I have tried :
- I create an empty QtQuick2 project and copy it to my deploy. The deploy folder is having ALL QT plugins, dll, etc...
- Copy the executable on the SDCard deploy folder, \DeployFolder
- I copy the folder \qml to \DeployFolder
- I copy the folder \plugins to \DeployFolder
- I copy ALL the DLL of \bin to \DeployFolder
- I copy the file msvcr90.dll to \DeployFolder
I launch the executable and then it start properly and I have a window with graphical output.
Secondly I add this to application :
<RCC> <qresource prefix="/"> <file>main.qml</file> <file>MainForm.ui.qml</file> <file>CMYK.jpg</file> </qresource> </RCC> Window { visible: true MainForm { anchors.fill: parent Image { source: "qrc:/CMYK.jpg" width : 80; height : 80; } } }
It start properly with graphical output.
Now I remove the jpg image and replace it by one of my SVG file. Surprise, it works also !!!
Now I tried to add 5 more SVG images to my resource file and create 5 more images element to my qml, but this time it failed ! Same problem as my original application. Now we can deduce that this is the number of images that makes the application crash or is it a particular image QT dislikes. To be sure I have tried with some of the svg images that I found in **src\qtsvg\examples\svg**, some works, other not.
After doing some test, I conclude that some svg image are crashing application and other simply work. This is weird, those image a very tiny icon not complex. And why they are ALL working on Windows Desktop but not on Windows CE ? Is there any limitation or know issue on Windows CE about SVG images ? I hope someone here can confirm this and provide a fix if possible.
As example, those one are not working on Windows CE:
Image { source: "qrc:/bubbles.svg"; sourceSize.width: 60; sourceSize.height: 60; width : 60; height : 60} Image { source: "qrc:/volume-up.svg"; sourceSize.width: 60; sourceSize.height: 60; width : 60; height : 60} Image { source: "qrc:/spinner.svg"; sourceSize.width: 60; sourceSize.height: 60; width : 60; height : 60}
- I create an empty QtQuick2 project and copy it to my deploy. The deploy folder is having ALL QT plugins, dll, etc...
-
Can you check whether they use the same SVG standard ?
-
At least bubbles.svg is animated, so I wonder if it has something to do with it