[Interest] Qt Binaries for Mingw 4.7

K. Frank kfrank29.c at gmail.com
Thu Jul 19 22:38:47 CEST 2012


Hello Konrad and Yves!

On Thu, Jul 19, 2012 at 4:07 AM, Konrad Rosenbaum <konrad at silmor.de> wrote:
> Hi,
>
> I'm using features of C++11 (provided by GCC 4.7, and maybe LLVM 3.1)

Me too, especially std::thread.

> in my
> projects, which is fine for Linux, but there are some problems on Windows.

I have been using mingw-w64 4.7.0 with Qt to good effect.

> Moving back to an earlier GCC is not an option - I'd rather drop Windows-
> Support (I've already dropped Mac for the same reason).
>
> If I use the official Qt 4.8.2 binary package for Mingw 4.4 the application
> crashes immediately on start when it is trying to initialize itself. I presume
> a Qt compiled with Mingw4.4 is incompatible with a project compiled with Mingw
> 4.7 - is this correct?

I do not know for sure, but it would not surprise me if 4.4 and 4.7
code would be incompatible.  The various mingw projects do try
to maintain abi (link-time) compatibility, but not at all costs.  I have
always been conservative and made a point of rebuilding Qt (and
other libraries) when upgrading the version of g++ I use for day-to-day
use.

> I'm also trying to compile Qt myself - after several days it is still in the
> middle of compiling the Webkit module. I know compiling on windows is slow -
> but this bad?

My most recent build of Qt was 4.8.0-rc1 (so not your 4.8.2 version,
but still 4.8) using a 64-bit mingw-w64 Ruben personal build of
g++ 4.7.0 on a native 64-bit windows 7 system.

It took "about a day" (where "about a day" might mean, say, ten
hours).  It was certainly "rather slow" -- it didn't take just a couple
of hours, but neither did it take a couple of days.

(As I understand it, make / g++, with their roots in the unix world,
spawn a bunch of subprocesses to do the work, and that's an
expensive process on windows.)

> Windows runs in a VirtualBox VM, Guest Utils are installed, the
> sources and Mingw are in a shared folder. I would try to move everything to a
> virtual hard disk next - does anyone know whether this would help?

I definitely have had link times be really slow when the input
object files and the output exe's and/or libs resided on network
storage, rather than on a local hard drive.

I don't know whether this is relevant to your case, though.

> Any hints on how I could solve my dilemma?

I don't have any specific suggestions. I only offer myself as a
proof-of-principle that what you want to do is (basically) possible.

One comment:  I built Qt using its "default" configuration (i.e.,
I didn't explicitly turn anything on or off).  I think that Webkit
gets built by default, but I don't actually know.  (I'd be glad
to check if someone would tell me how.)

Also, I did not use the g++ command-line argument that turns
on c++11 support ("-std=c++0x") when compiling Qt.  I believe,
but haven't verified, that I could compile my code with -std=c++0x,
and link it with Qt built without.

On Thu, Jul 19, 2012 at 4:23 AM, Yves Bailly <yves.bailly at sescoi.fr> wrote:
> Hello Konrad,
>
> Le 19/07/2012 10:07, Konrad Rosenbaum a écrit :
>>
>> Does anyone provide a complete binary package for Qt 4.8.2 compiled with
>> Mingw4.7?

I don't know for sure, but I don't think anybody provides mingw32
or mingw-w64 pre-built Qt binaries on a systematic basis.  (I've
always built my own.)

> Are you trying 32bits or 64bits builds?
>
> The only really working 64bits MinGW I ever found is the one from TDM
> (http://tdm-gcc.tdragon.net/, also probably the easiest to install), but for now, no 4.7.x
> release available...

I've used TDM builds in the past (but mingw32, rather than mingw-w64),
but I would say that a number of the other "personal" mingw-w64 64-bit
builds are also "really working."  Recently I've been using Ruben's
personal builds, and am currently using a 4.7.0 build that supports
many c++11 features (including std::thread).

So, no complaints about TDM, but there are alternatives.

> Are you using MinGW-w64? Is is usable without MSYS, and installable without too much troubles?

I am using mingw-w64 quite successfully without msys.  I found the
"installation process" very straightforward -- download, unzip, and add
the relevant "bin" directory to the path.

My own code doesn't use unix-style "configure" utilities (as I
understand it, the main reason for msys), and Qt comes with its
own windows configure script, so you don't need msys to build Qt.

> I'd be more than glad to try such a build, targetting 64bits binaries.
>
> Regards,

Good luck.


K. Frank



More information about the Interest mailing list