[Interest] Problems with Clang 3.9 and Qt 5.8 preBeta
thiago.macieira at intel.com
Sun Oct 2 22:51:59 CEST 2016
On domingo, 2 de outubro de 2016 18:03:56 MDT Oliver Niebuhr wrote:
> I heard a lot of good things about Clang and decided to try it out.
> This are my very first steps but yes, I read a lot on the interwebs
> My Problems are:
> 1.) I am not 100percent sure how to setup MSVC/Clang correctly. There
> are many outdated posts, so i hopefully got a lot closer with my current
> configure parameters. And the ones I found in the Qt Forum are mostly
> saying "...you should ask on the Mailing List..."
The current answer for you is "don't". Clang-cl is not stable enough for you
to try it, unless you're either a Clang developer who can fix the compiler to
make it stop crashing, or a Qt developer who can modify the source code to see
what was the reason Clang crashed, then create a bug report for Clang
developers to fix their compiler.
Since this email was sent to the Qt interest mailing list, you're probably
neither. At this time, I advise you to wait a little more (maybe a year or
> 2.) As Qt 5.8 has of course a lot of Bugs left, I am not sure if the
> Clang Error is related to a) my configure parameters b) Clang 3.9 or c)
> a Bug in the Qt Framework.
If you're using clang-cl, there's a better-than-90% chance it's Clang's fault.
I fixed the remaining issues that were Qt's fault two months ago or so, then
stopped when I ran into internal compiler errors.
> In file included from ..\include\QtCore\5.8.0\QtCore\private/qvariant_p.h:1:
> tbase/src/corelib/kernel/qvariant_p.h(433,27): error: use of overloaded
> operator '<<' is ambiguous (with operand types 'QDebug' and 'nullptr_t')
> dbg.nospace() << *v_cast<T>(d);
> ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
This one could be a compiler bug, a Qt bug, or a mistake in setting up your
MSVC / Clang environment. Since there are no instructions for the latter, if
you try it, you're on your own. It looks, somehow, that commit
b5153d5bfab63da811b7a4615238d9e50198b412 is the cause (which is exactly the
one of the two or three commits I made to make Clang-cl 3.8 work a couple of
months ago), which means Microsoft headers did not define _HAS_NULLPTR_T. You
get to investigate further.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Interest