Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create executable file for a Qt Application?

Tags:

I've been searching on the internet for some useful and clear information about this, it's annoying that such a trivial thing is so hard to do.

What I need is to create an executable file for my Qt project, in order to run it in other computers. My project runs nicely in the Qt Creator, but when I try to run the executable created in the release folder I get errors about some dll missing, and though I have put all of them in the same directory of my .exe I now got some errors about entrypoints in procedures inside the dll (QtCore4.dll).

The solution looks like to be a static linking, I've found many information about it, but none of them really helped me. Here is what I have tried so far:

  • Using the executable created in the release folder as I said above.
  • Static Linking, following this tutorial (and many others, all almost the same thing): http://doc.qt.io/qt-4.8/deployment-windows.html but I get the following error during the "configure -static": NMAKE : fatal error U1077: '"c:\Arquivos de programas\Microsoft Visual Studio 9. 0\VC\BIN\cl.EXE"' : return code '0x2' Stop. Building qmake failed, return code 2

For that I couldn't find any solution, so here I am, just trying to create an executable file for my Qt project, hope you guys can give me some light here.

like image 844
Paulo Facó Avatar asked Nov 29 '11 14:11

Paulo Facó


People also ask

How do I create an executable file using qmake?

cpp. In console typing qmake -project (this creates . pro file) In console typing qmake -makefile (now I have makefile + some other files)

How do I create a standalone Qt application?

To build the Qt project as a standalone executable file run qmake and nmake. After that you should execute mt.exe to embed a manifest inside the application to avoid error such as missing MSVCP90. dll when the application is started on other computers.

Can you make an executable file?

If you want to create your own executable files on Windows, you can, but it isn't as simple as renaming a file and adding .exe to the end of it. You'll need to code the software you want to run in your chosen programming language, then compile it as a file that can be executed.


1 Answers

Basically you have to look for mingw subfolder deep into qt tree, where qt utilities reside, and copy needed dll's.

These are the steps I follow, based upon QT 4.7.4, for packaging the application with correct shared libraries.

  1. Let's say you've installed QT under c:\qtsdk
  2. Open your project, and compile it in release mode.
  3. Go to this directory: C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin -- it contains all shared libraries. Debug libraries end with a "d" -- frex, QtCore.dll is release version, while QtCoreD.dll is debug version
  4. Copy at least these files into your release directory (where your .exe lies)

    • mingwm10.dll
    • libgcc_s_dw2-1.dll
    • QtCore4.dll
    • QtGui4.dll

    I just built, tested and deployed a dummy project this way.

like image 68
Max Lambertini Avatar answered Sep 21 '22 19:09

Max Lambertini