[Solved] Installing Qt 4.8.2 from sources using MinGW 4.7.x
-
[quote author="Zebbik" date="1345727364"]I have downloaded the version of MinGW from their website and then sourceforge. I did not realize there would be more versions of MinGW. I will try to read about them, though.[/quote]These are not exactly different versions, but rather the same version beeing built using a different toolchain, different compiler options and different dependencies. So if you run into a bug which is caused by a specific combination of the above chances are high that another build works.
[quote author="Zebbik" date="1345727364"]As to limiting the build to debug, release, or keep develop-build, what would be the difference if I decided to have debug or release version, or even both?[/quote]A release build usually contains only code, optimizied for speed and size, a debug build additionally includes debug information which allows for (comfortable) debugging and bug tracking at the cost of decreased speed and increased size and a developer build is in principle an extended debug build, which basically allows for (automated) testing of Qt itself.
-
[quote author="Uwe Kindler" date="1345730525"]If you have the money to buy a VS2010 license there is nothing wrong with VS2010[/quote]The MSVC compiler comes for free as part of the Windows SDK and the Express Editions, what you pay for is Visual Studio.
-
Thanks Uwe,
I'm sorry I miss the platform configuration you have specified "-platform win32-g++-4.6". I don't know why. I did not find it in the documentation as well.
The main reason I am compiling Qt is that I need a functional plugin mysql and openssl. I have database put on server and I an application that can operate on this database. OpenSsl is not that important as mysql. I am not interested in CUDA and GPU accelerated applications at all. From what you have said, everything is on MinGW side :) Thanks for this post. I am really happy I can stick to MinGW. I will go and try GNU GCC with proper option specified. Hopefully, this time it will get through. -
[quote author="Lukas Geyer" date="1345731383"]These are not exactly different versions, but rather the same version beeing built using a different toolchain, different compiler options and different dependencies. So if you run into a bug which is caused by a specific combination of the above chances are high that another build works.[/quote]I see. Now I know what I am dealing with. On the same website, there is a version of MinGW 4.4 availabel to download as well as the Qt sources. It seems to be that this version of MinGW might be "tuned" so that Qt can be built properly. I am not sure if it's the case, though.
[quote author="Lukas Geyer" date="1345731383"]A release build usually contains only code, optimizied for speed and size, a debug build additionally includes debug information which allows for (comfortable) debugging and bug tracking at the cost of decreased speed and increased size and a developer build is in principle an extended debug build, which basically allows for (automated) testing of Qt itself.[/quote]I understand that if I am not going to test Qt itself, then I probably don't need -debug version. I do not even feel I would be of any help to find a bug, not on this stage i am afraid. Perhaps later :)
Thank you
-
[quote author="Lukas Geyer" date="1345731538"]The MSVC compiler comes for free as part of the Windows SDK and the Express Editions, what you pay for is Visual Studio.
[/quote]Visual Studio Express 11 does not support desktop applications but only metro applications:
"http://www.golem.de/news/visual-studio-11-kostenlose-express-version-unterstuetzt-nur-metro-apps-1205-91989.html":http://www.golem.de/news/visual-studio-11-kostenlose-express-version-unterstuetzt-nur-metro-apps-1205-91989.html
You still can use Visual Studio Express 10 but then you will not get the new C++ features that will be implemented for new compilers.
-
"No":http://blogs.msdn.com/b/visualstudio/archive/2012/06/08/visual-studio-express-2012-for-windows-desktop.aspx, Visual Studio Express 2012 has support for C++ for Desktop and Console applications.
If you do not need Visual Studio the compiler suite is included in the Windows SDK 8 as well.
And, well, there are no new C++ features in MSVC2012 except for some minor stuff like range-based for, strongly-typed enums and a bit of concurreny (mostly stuff that is already provided by Qt). Still no const expressions, no delegation, no constructor inheritance, no initializer lists, no non-static data-member initialization, no unicode literals, not even variadic templates.
(Serious) C++11 means Intel, GCC or Clang. Forget about MSVC.
-
[quote author="Zebbik" date="1345732703"]On the same website, there is a version of MinGW 4.4 availabel to download as well as the Qt sources. It seems to be that this version of MinGW might be "tuned" so that Qt can be built properly. I am not sure if it's the case, though.[/quote]You don't need to bother with MinGW 4.4. It is outdated, broken and no longer supported as of Qt5. Go for MinGW 4.6.3+ or MinGW 4.7+ instead. I'm using the mingw-builds and I haven't had a problem so far with Qt 4.8+ and Qt 5.
[quote author="Lukas Geyer" date="1345731383"]I understand that if I am not going to test Qt itself, then I probably don't need -debug version.[/quote]You will need a debug version of the libraries if you want to step into Qt itself when debugging your application (otherwise you'll be just dumped into a bunch of disassembly).
So I strongly recommend building a debug version of Qt as well when you plan to build a debug version of your application. You should be theoretically able to link your debug application to a release Qt but experience has shown that this is really just theoretical.
-
I am glad you told me about debug. I was not aware of requiring it when it comes to debug my own applications and I'd probably build Qt without it.
MinGW 4.4 is installed with QtSDK and I though I could change Path to this folder but if you say it's not a good idea then I'll try different toolchains as mentioned or change configuration with remaining MinGW 4.7.0 I have installed. Hope this time it 's going to work.Thanks
Best wishes. -
I am happy to say that after the whole night my comp finally built Qt 4.8.2 ^^ using MinGW 4.7.0. My previous projects from QtSDK work, QLocale, QTranslator work, QMYSQL work woohoo .... I am so happy. So far, so good.
I genuinely say thank you for the help :)
-
You're welcome.
One last hint: if you don't need Webkit skip building it (using <code>--no-webkit</code>). This greatly reduces compilation time.
-
In my opinion, this is a classic example of a failure to test and create the "correct" solution to the problem. The OP's problem is caused by code bloat from inlined functions. The easiest way to fix this problem is to pass -fno-keep-inline-dllexport as a compiler option. Ideally, the win32-g++ mkspec should be updated with this change. I worked on creating a patch for this problem this weekend but after patching and building Qt I got distracted by the multitude of problems I had building qt-creator. Beware if you move on to build creator, there are several bugs when building with win32 vs. win64. For example, on win32 builds, MIB_TCP_STATE will be undefined because of an incorrect preprocessor check for the version of GCC.
Hopefully this will serve as a wake-up call for people to do more testing before pushing code and releasing immature versions.
Chris
[quote author="Zebbik" date="1345647851"]Hi
I configured makefile using this command:
@.\configure.exe -opensource -plugin-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -developer-build -no-qt3support -platform win32-g++ -I C:\ApacheMysqlPhp\Mysql\include -L C:\ApacheMysqlPhp\Mysql\lib -L C:\ApacheMysqlPhp\Mysql\lib\opt
@and then executed make.exe (make.exe is the same file as mingw32-c++.exe, mingw32-gcc.exe, mingw32-g++.exe etc.). However in the middle, the process stopped with this log:
@c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: final link failed: Memory exhausted
collect2.exe: error: ld returned 1 exit status
make[2]: *** [....\lib\QtGuid4.dll] Error 1
make[2]: Leaving directoryC:/Qt/4.8.2/src/gui' make[1]: *** [debug-all] Error 2 make[1]: Leaving directory
C:/Qt/4.8.2/src/gui'
make: *** [sub-gui-make_default-ordered] Error 2@I have windows 7 64bit. Why is there this error?
[/quote] -
[quote author="Zebbik" date="1345795721"]I am happy to say that after the whole night my comp finally built Qt 4.8.2 ^^ using MinGW 4.7.0. My previous projects from QtSDK work, QLocale, QTranslator work, QMYSQL work woohoo .... I am so happy. So far, so good.
I genuinely say thank you for the help :)
[/quote]Hi Zebbik,
I'm also trying to update the MigGW compiler to the 4.7 version and keep working with QtSDK. I'm a beginner and I don't know much about how to compile Qt and configure QtCreator properly to work with it (not with the default MinGW 4.4)... Could you tell me more or less the steps you took to get it working?
Thank you very much!!