QT Creator 2009.5

QT Creator 2009.5

Hi, I am using Qt Creator 2009.5 (not using visual studio) to develop application. After making release build, and creating .msi installer using Advanced Installer tool , the installer does not install image on other machine. Due to this, applications runs without background image. During packaging it's missing some dll file so any possible work around to overcome this. Thanks.
35 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Khan,

Is the problem that you cannot re-size/scale your background to pass the display resolution criteria in the validation?

Hi Brain,

Thanks for your continued support.

I would like to know "How to embed background image in .exe file (Release Build)"

I need some background image in Qt application .
By using below code when I am including it in application , It is not getting include in SMS7.exe file (in Release build) .

If I install application on other m/c , user need to copy NetPurse.gif file to C:/ .

SMS7::SMS7()
{

QString imagePath = "C:/NetPurse.gif" ;

keypadImage.load(imagePath);
.....
}
Is there any solution to embed image in .exe file itself instead of picking from C:\ .
So that user don't need to copy NetPurse.gif file to C:/ & image gets embedded in .exe file itself .

I have sent email to QT technical team as well and hope to get some work around.

Thanks,
Khan

Khan,

While I do not develop with QT often, I can point you to the following resources:

http://doc.trolltech.com/qtcreator-1.3/index.html

http://labs.trolltech.com/blogs/category/qtcreator/

http://lists.trolltech.com/

Khan,

Which #include files you include?

I am including #include "str7.h"

Please suggest if NetPurse.gif can also be included as :

#include "NetPurse.gif"

I am including #include "str7.h"

Please suggest if NetPurse.gif can also be included as :

#include "NetPurse.gif"

You can embed any resources(icons,images,configuration files...etc) in the application's executable using The Qt Resource System
open your Qt project resources file(Resource Collection File (.qrc)) and add the name of your resource(with a :/ prefix) and recompile
your project.for more info search your Qt's installation reference for "The Qt Resource System".

Khan, is your application worked well before packed?

Khan, try to use qresource to your project. I haven't got those problems yet since I use qresource.

regards

7keypad,

You can't include your .gif file like that. The C/C++ preprocessor #include can only be used to include C/C++ header, except your header files has .gif extension (which not familiar to use).

To include your image(s) to your program:
1. Create .qrc file. (Which written in XML format) like below. IMPORTANT: to keep our project tidy, put your image resource(s) in separate folder on your project's folder, so we can use relative path instead of absolute path to our resource(s). In this case, i.e. we named our folder "images"

<RCC>
<qresource>
<file> images/NetPurse.gif</file>
...
...
...
</qresource>
</RCC>

then, name it resource.qrc (in practice, you are welcome to use any name)

2. Add to your .pro project (in new line):

RESOURCE = resource.qrc

3. You can call your resource like this:

keypadImage.load(tr(":image/NetPurse.gif"));

Qt supports many kind of image format such BMP, GIF, JPEG, PNG, PNM, SVG, TIFF, XBM, and XPM

Kind regards,

Thanks Chandra for your suggestions.

I will try qresource and revert back soon.

Regards

Yes now it is working fine .

In Qt Creator , after adding resoucre file to project, prefix & then

image(images/Netbook7.gif) , following changes occured :
1)resource.qrc file got created in C:\7\7Keypad with contents as:

images/Netbook7.gif

2)In keypad7.pro below line got added
RESOURCES += resource.qrc

3)I modified image loading as :
keypadImage.load(":images/Netbook7.gif");

After that it is working fine with & background image is getting displayed.

4)In Release folder Keypad7.exe was not working so I added :
mingwm10.dll
libgcc_s_dw2-1.dll
QtCore4.dll
QtGui4.dll
in Release folder .
After this Keypad7.exe is working fine & background image is getting displayed.

Hi All,

Thanks a lot for all your support and great help provided so far. 7Keypad is able to solve this issue and will be submitting app soon.

hope to see it published on the app up.

Thanks again.
Khan

Khan,

As you know the CRT runtime and any required library that your entry requires must be packaged with your MSI.

Application Packaging Requirements Guide: http://appdeveloper.intel.com/en-us/article/packaging-requirements

If you know what libraries you are missing I suggest you look into including the proper merge modules in Advanced Installer:

http://www.advancedinstaller.com/user-guide/merge-modules.html

If you do not know what libraries you are missing, Dependency Walker will be of assistance:

http://en.wikipedia.org/wiki/Dependency_Walker

Please let me know if I can help you along your way. Best of luck.

Hi Brain,

I will work with Dependency Walker and give my feedback soon.

With regards to advanced installer I will have a look into the url as I know the missing libraries.

Thanks.

Also you can check files has been installed with your installer using /log log_file_path . Installer will creates a log file and verbose all information about all actions (e.g. files installed) to this file.

For example: installation.msi /log c:\mylog.txt

Application validation reason : Failed to launch- missing mingwm10.dll. all
> dependencies must be packaged with the app.

did you include mingwm10.dll to your installer?

Yes I had included while converting to .msi format using advanced installer.

After installation dll exists in the target directory? Try to use /log key with your .msi to see what happens during installation. As suggestion - may be this dll has some external dependencies and can't be loaded without that dependencies?

Thanks for the reply Rizshkov I am working on the same and will revert back soon.

Khan,

Is "mingwm10.dll" in an environment PATH? * Example: c:\windows\system\

This is critical, as the shortcuts used to start your program do not necessarily have the same value for start-up path and target.

More details here: http://appdeveloper.intel.com/en-us/node/916

Does this mean that Intel SDK support mingw compiler already? According to http://appdeveloper.intel.com/en-us/node/381 only Microsoft compiler is supported for now.

BTW, I do use Qt Creator to develop the applications on both Windows and Moblin, but had to recompile with Visual Studio in order to link with Intel SDK. Moblin SDK worked well with Qt Creator.

Boris.

>> Does this mean that Intel SDK support mingw compiler already?

No, but you will want to watch this page for updates related to supported run-time and IDE's:

http://appdeveloper.intel.com/en-us/develop

Hi Brain,

If SDK doesn't support QT than do I need to recompile the code or can I try with your previous suggestion?

Khan,

So long as you utilize the C++ ATOM Library you are free to use any compiler if you can get it to work. Not supported means that Intel will not assist in troubleshooting if something goes wrong. My suggestion is to use Visual Studio 2008 so we can help you if you run into problems in the future.

Khan,

I would suggest to use Qt with Visual Studio 2008. I was not able to link Intel SDK libraries against mingw compiled code. Maybe you'll have better luck with this but I gave up after half an hour. Probably it is possible to add headers and maybe libraries Intel SDK relies upon but for me switching to Visual Studio solved the linking problem immediately. Intel libraries for moblin were compiled with gcc, I guess, I have not have any problems with them.

Boris.

Khan,

You can download a trial version of Visual Studio 2008: http://msdn.microsoft.com/en-us/vstudio/aa700831.aspx

I will try this Brian but in the meantime I have packaged with the missing dll file and resubmitted so will see if it pass this time.

Thanks you for your great help.

Khan

Khan,

You are welcome.

When you packaged the DLL in the MSI, did you set the DLL to register or install to a common directory (like c:\windows\system\)?

Remember, that when your applications shortcut is made, the TARGET and STARTUP PATH values may differ. All DLL's must be registered and accessible from any path.

This post explains it in detail:

http://appdeveloper.intel.com/en-us/node/916

Hi Brain,

Thanks for your input that actually worked and I could package with missing dll and submit for validation but now the major concern is with the background image, I have got the validation comments to change background image but I will not be able to do so and hence have to drop the idea of listing this particular app.

Khan

Khan,

What was the validation response in reference to(Please paste here)? : "I have got the validation comments to change background image but I will not be able to do so"

Why are you not able to change the background image?

Hi Brain,

The backgroud image can't be changed because it's the user keypad display.

http://www.7keypad.com/

I don't know what is wrong with this background image so can you help me out.

Thanks,
khan

Hello Khan,

could you show us with screenshots or explain the issue with the background image ?
It's not clear from your description what your application is doing. Thanks.

Best Regards,

Andre B.

Intel® Atom™ Developer Program

Leave a Comment

Please sign in to add a comment. Not a member? Join today