[solved] Choosing between different MinGW compilers



  • My Qt directory got a bit cluttered lately... I have both Qt 5.1.1 and 5.2.0, in all versions (ANGLE, OpenGL) - 8 total. Then I have the MinGW compilers both 4.8.1 and 4.8.2, each coming in x86 and x64 version and again each with posix and win32 threads version. Shortly, here's how my Qt directory looks:
    @
    C:\Qt\QtCreator

    C:\Qt\Compilers

    mingw32-4.8.1-posix
    mingw32-4.8.1-win32
    mingw32-4.8.2-posix
    mingw32-4.8.2-win32
    mingw64-4.8.1-posix
    mingw64-4.8.1-win32
    mingw64-4.8.2-posix
    mingw64-4.8.2-win32

    C:\Qt\Versions

    Qt-5.1.1-MinGW-4.8.1-ANGLE-x64
    Qt-5.1.1-MinGW-4.8.1-ANGLE-x86
    Qt-5.1.1-MinGW-4.8.1-OpenGL-x64
    Qt-5.1.1-MinGW-4.8.1-OpenGL-x86
    Qt-5.2.0-MinGW-4.8.2-ANGLE-x64
    Qt-5.2.0-MinGW-4.8.2-ANGLE-x86
    Qt-5.2.0-MinGW-4.8.2-OpenGL-x64
    Qt-5.2.0-MinGW-4.8.2-OpenGL-x86
    @

    Now, should I make all qt versions and compiler combinations (you know, to have them all even for testing only) there would be waaaaayy toooo many kits to create. I'm not that insane, I'm never going to do that. But, as you can understand from the directories names, each Qt version has been compiled with different compiler.
    My goal now is to reduce the number of qt versions and compilers so that a reasonable number of kits comes out.
    Can you help me suggesting the combinations of qt versions and compilers that I should be using?
    My primary development target is Windows (Win 7+) but I'm not excluding Linux and Mac OS X at all.


  • Moderators

    Hi,

    Is there a reason you're using both MinGW 4.8.1 and MinGW 4.8.2? I believe they're binary compatible.



  • Probably they're, I haven't seen any note saying they're incompatible. But I was keeping both of them because I just wanted to make sure Qt 5.1.1 was totally going to work with the same mingw build it was compiled.
    But I was thinking about using 4.8.2 only.

    Major trouble is about win32 vs posix. I'm not using any threaded programming so I can't tell the pros and cons of each, so I (logically) prefer to keep them both until I'll be using them...


  • Moderators

    I think you're creating lots of work for yourself, but don't get any benefits for your trouble.

    Remember that MinGW also comes with 3 models of exception handling: SJLJ, DWARF, and SEH. If you want to do comprehensive testing, you will need to triple the number of builds you create. That's a serious overkill.

    Have a look at http://qt-project.org/wiki/MinGW-64-bit :

    • It tells you the recommended versions of MinGW to use, and explains how the Qt engineers chose them
    • It explains the pros and cons of the different flavours (POSIX vs. Win32; SJLJ vs. DWARF vs. SEH)

    [quote author="T3STY" date="1388014225"]Probably they're, I haven't seen any note saying they're incompatible. But I was keeping both of them because I just wanted to make sure Qt 5.1.1 was totally going to work with the same mingw build it was compiled.
    But I was thinking about using 4.8.2 only.[/quote]MinGW (GCC) 4.8.2 is a bugfix update to MinGW 4.8.1. They are fully compatible, so there is no benefit in supporting both versions. Just use 4.8.2.

    [quote author="T3STY" date="1388014225"]Major trouble is about win32 vs posix. I'm not using any threaded programming so I can't tell the pros and cons of each, so I (logically) prefer to keep them both until I'll be using them...[/quote]Well if you're not developing multithreaded applications, then you won't notice anydifference between POSIX and Win32. There is no benefit in building 2 flavours.

    If you ever start developing multithreaded apps and want to test both POSIX and Win32, you can add the build when your app is ready for testing. Until then, just use POSIX and save yourself the trouble.

    As for the rest:

    • Do you want to release 32-bit AND 64-bit software? If so, why?
    • Is there a reason you want to support Qt 5.1.1 still?
    • Testing both OpenGL and ANGLE is actually worthwhile, if you create Qt Quick apps. There are common graphics issues that need fixing.


  • [quote author="JKSH" date="1388059863"]As for the rest:

    • Do you want to release 32-bit AND 64-bit software? If so, why?
    • Is there a reason you want to support Qt 5.1.1 still?
    • Testing both OpenGL and ANGLE is actually worthwhile, if you create Qt Quick apps. There are common graphics issues that need fixing.[/quote]

    Yes, I'm planning on releasing both 32-bit and 64-bit versions. I actually prefer 64-bit only which offers a few advantages, but there are still way too many users outthere with 32-bit OS even if the CPU is 64-bit capable. Also, I know a few issues of 32-bit on 64-bit OSs, and those need a proper 64-bit build to work. That would need some testing which I'll be doing, but at this point I need both 32 and 64 bit versions.
    Supporting Qt 5.1.1 is not really an option, I just had it earlier and I thought I'd keep it there ready, just in case.
    I keep OpenGL and ANGLE versions because I read almost everywhere that ANGLE has better performance on Windows, while OpenGL is fairly better on Linux distros. Again, this needs testing.

    Thank you very much for the link about MinGW, I'm now going to read it.


  • Moderators

    Ok, then it makes sense to test both 32-bit and 64-bit builds. I can't see why you should keep Qt 5.1.1 though.

    [quote]ANGLE has better performance on Windows, while OpenGL is fairly better on Linux distros. Again, this needs testing.[/quote]
    MinGW can't compile Linux binaries, so you should not consider Linux at all when choosing MinGW options. Use a Linux PC + compiler to test Linux builds.



  • [quote author="JKSH" date="1388068850"]MinGW can't compile Linux binaries, so you should not consider Linux at all when choosing MinGW options. Use a Linux PC + compiler to test Linux builds.[/quote]
    I know, I know! I'm only using MinGW because it is a port of the GCC compiler suite from Linux to Windows, which makes it the most compatible compiler; for Linux compiling I'll be using a Linux-enabled PC :)


  • Moderators

    [quote author="T3STY" date="1388070228"]I know, I know! I'm only using MinGW because it is a port of the GCC compiler suite from Linux to Windows, which makes it the most compatible compiler; for Linux compiling I'll be using a Linux-enabled PC :)[/quote]Ok :) Sorry if I sounded like I was doubting your GCC knowledge; I just wanted to say that "OpenGL performs better on Linux" should not be the reason for you to support OpenGL on Windows in addition to ANGLE.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.