[SOLVED] Qt 5.1.1. Win7. How to build an application statically
-
Hi,
I want to build a simple application statically. I have Qt 5.1.1 and Win7.
I need a simple step-by-step instruction. Because, I don't understand it http://qt-project.org/doc/qt-5.1/qtdoc/deployment-windows.html
Please, give me links on step-by-step instructions. Please, help me!
-
Can I have two version of Qt on my computer: Building Qt Statically and Building Qt as a Shared Library?
-
I have questions about this instruction: http://qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html
[CODE]
Building Qt Statically
Before we can build our application we must make sure that Qt is built statically. To do this, go to a command prompt and type the following:
cd C:\path\to\Qt
configure -static <any other options you need>
[/CODE]Is it right path?
[CODE]
C:\Qt\Qt5.1.1\5.1.1\mingw48_32\bin
[/CODE]What should I write instead of <any other options you need>?
Or I should write simple command configure -static. Is it right? -
Hi,
No, configure can be found in Qt's sources.
Yes, you can have as much version of Qt you need (and enough space on your hard drive)If you want several build of Qt, consider out of source building, otherwise you'll end up with several copies of the sources which are not needed.
-
Hi, thank you very much!
What is "configure"?
I tried to run it from "Administrator: Qt 5.1.1 for Desktop (MinGW 4.8 32 bit":
[CODE]
C:\Qt\Qt5.1.1\5.1.1\Src>configure -static
'configure' is not recognized as an internal or external command,
operable program or batch file.[/CODE] -
I want to work with OpenGL. Do I need a flag -opengl desktop?
-
What does this mean?
[CODE]
WARNING: The DirectX SDK could not be detected:
There is no Direct X SDK installed or the environment variable "DXSDK_DIR" is
not set.
Disabling the ANGLE backend.WARNING: Using OpenGL ES 2.0 without ANGLE.
Specify -opengl desktop to use Open GL.
The build will most likely fail.
[/CODE] -
Please, help me!!!
-
I ran mingw32-make confclean
Please, say me what should I do?
-
Please, have some patience.
Unless you add -no-opengl, you'll get an OpenGL build. Without any precision on Windows, it will be an ANGLE build. If you add -opengl desktop you'll get a standard OpenGL build.
Run configure and then call mingw32-make.
I would advise using an out of source build, to avoid polluting the source tree with the files generated by the configure/compilation processes.
-
Thank you very much!
I have now the default installation of Qt with course is here: C:\Qt\Qt5.1.1\5.1.1\Src\qtbase
Should I to create another folder and copy to here of the course? For example: C:\Qt\Qt5.1.1_static\5.1.1\Src\qtbase
Should I run this commands:
configure -static -opengl desktop
mingw32-makeShould I intall DirectX SDK?
Can I use DirectX from Qt?
-
I installed DirectX SDK from here: http://www.microsoft.com/en-us/download/confirmation.aspx?id=6812
But the error was occured: http://img.pixs.ru/storage/6/5/1/107png_9391316_10038651.png
[CODE]
Examples installed to.......C:\Qt\Qt5.1.1_static\5.1.1\Src\qtbase\examples
Tests installed to..........C:\Qt\Qt5.1.1_static\5.1.1\Src\qtbase\tests
WARNING: Using static linking will disable the use of plugins.
Make sure you compile ALL needed modules into the library.Generating Makefiles...
Qt is now configured for building. Just run mingw32-make.
To reconfigure, run mingw32-make confclean and configure.C:\Qt\Qt5.1.1_static\5.1.1\Src\qtbase>mingw32-make
cd src/ && ( test -e Makefile || C:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/bin/qmake
C:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/src/src.pro -o Makefile ) && mingw32-make
-f Makefile
mingw32-make[1]: Entering directory 'c:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/src'
c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/bin/qmake.exe -o Makefile src.pro
process_begin: CreateProcess(NULL, c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/bin/qmake.exe
-o Makefile src.pro, ...) failed.
make (e=2): The system cannot find the file specified.
Makefile:569: recipe for target 'Makefile' failed
mingw32-make[1]: *** [Makefile] Error 2
mingw32-make[1]: Leaving directory 'c:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/src'
makefile:41: recipe for target 'sub-src-make_first' failed
mingw32-make: *** [sub-src-make_first] Error 2
[/CODE] -
I added to PATH C:\Qt\Qt5.1.1_static\5.1.1\mingw48_32\bin
But:
[CODE]
C:\Qt\Qt5.1.1_static\5.1.1\Src\qtbase>mingw32-make
cd src/ && ( test -e Makefile || C:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/bin/qmake
C:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/src/src.pro -o Makefile ) && mingw32-make
-f Makefile
mingw32-make[1]: Entering directory 'c:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/src'
c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/bin/qmake.exe -o Makefile src.pro
process_begin: CreateProcess(NULL, c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/bin/qmake.exe
-o Makefile src.pro, ...) failed.
make (e=2): The system cannot find the file specified.
Makefile:569: recipe for target 'Makefile' failed
mingw32-make[1]: *** [Makefile] Error 2
mingw32-make[1]: Leaving directory 'c:/Qt/Qt5.1.1_static/5.1.1/Src/qtbase/src'
makefile:41: recipe for target 'sub-src-make_first' failed
mingw32-make: *** [sub-src-make_first] Error 2
[/CODE]Please, help me!
-
I am building now from C:\Qt\Qt5.1.1\5.1.1\Src\qtbase
I ran mingw32-make
It is building now successfully
Should I run mingw32-make install later?
-
I waited 2-3 hours. Now I see:
[CODE]
-lqwindowsd -lwinspool -lshlwapi -lQt5PlatformSupportd -lQt5Guid -lcomdlg32 -lol
eaut32 -limm32 -lwinmm -lglu32 -lopengl32 -lgdi32 -lQt5Cored -lole32 -luuid -lws
2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz
c:/qt/qt5.1.1/tools/mingw48_32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../..
/i686-w64-mingw32/bin/ld.exe: final link failed: No space left on device
collect2.exe: error: ld returned 1 exit status
Makefile.Debug:79: recipe for target 'debug/tutorial2.exe' failed
mingw32-make[4]: *** [debug/tutorial2.exe] Error 1
mingw32-make[4]: Leaving directory 'c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/examples/qtes
tlib/tutorial2'
Makefile:34: recipe for target 'debug' failed
mingw32-make[3]: *** [debug] Error 2
mingw32-make[3]: Leaving directory 'c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/examples/qtes
tlib/tutorial2'
Makefile:67: recipe for target 'sub-tutorial2-make_first' failed
mingw32-make[2]: *** [sub-tutorial2-make_first] Error 2
mingw32-make[2]: Leaving directory 'c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/examples/qtes
tlib'
Makefile:278: recipe for target 'sub-qtestlib-make_first' failed
mingw32-make[1]: *** [sub-qtestlib-make_first] Error 2
mingw32-make[1]: Leaving directory 'c:/Qt/Qt5.1.1/5.1.1/Src/qtbase/examples'
makefile:66: recipe for target 'sub-examples-make_first' failed
mingw32-make: *** [sub-examples-make_first] Error 2[/CODE] -
Your hard drive is full
-
No, I have 648 MB now
How to create a static application?
-
I ran: mingw32-make install It is installing
-
"/i686-w64-mingw32/bin/ld.exe: final link failed: No space left on device" means your hard drive is full.
You don't have everything built.
To build your application statically, use your static version of Qt
-
Yes, I see. Thank you!
I deleted Qt. I am trying to install it now. May I ignore this errors?
http://img.pixs.ru/storage/6/0/1/108png_3122168_10047601.png
http://i7.pixs.ru/storage/6/4/9/109png_4051130_10047649.pngHow can I solve it?