Hi, On Thursday 19 July 2012, K. Frank wrote: > On Thu, Jul 19, 2012 at 4:07 AM, Konrad Rosenbaum <kon...@silmor.de> wrote: > > I'm using features of C++11 (provided by GCC 4.7, and maybe LLVM 3.1) > > Me too, especially std::thread.
Lambdas and variadic templates (in connection they make a nice wrapper for directing signals to lambdas with an unchanged Qt4). > > 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. Ok, I did not move Windows to 64bits yet. With Windows I'm always afraid that the Redmonders mix up 8-byte-wide addresses with drinking 64 Bit beers (short for Bitburger beer) - that much would definitely not be good for you... ;-) > > 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. The version of the main library for MinGW changed from 3.16 to 3.17 between 4.6 and 4.7 - this might indicat an ABI break. :-( > > 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. I could reduce to 5 hours by moving the sources from my "shared drive" to a virtual hard disk and by configuring Qt to not compile Webkit and all Multimedia related modules. > (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.) I'm getting the feeling that GCC and especially ld make a lot of separate and small file I/O operations - these come at almost no cost on Unices, but bear a heavy cost on Windows. A few years ago I found out the hard way that regular fflush-calls make a runtime-difference of factor(!!) 60 between Linux and Windows - it seems things are even worse on networked file systems. > > 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. It seems to be. > 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.) It does get built by default - that what took about 2 days before it crashed the build-process while linking (memory exhausted in ld). > 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. It's certainly possible on Linux and I did do this on Windows while I was still using GCC 4.6.2 and Qt 4.7.4. With GCC 4.7 and Qt 4.8.2 I just compiled Qt without any -std=* flag and the program with -std=g++0x. It runs, but crashes on a very specific operation - I'm still investigating why (might be OpenSSL or a flaw in my program). Konrad
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest