Failed to build 32-bit Qt with Visual Studio 2012 - bad YarrJIT.cpp compilation
-
I am trying to build 32 bit Qt libraries on a Windows 7 computer using Visual Studio 2012.
Therefore I configured as follows:C:\Qt\4.8.4> configure -platform win32-msvc2012
After nmake compiled happily for about half an hour, it failed with the output shown below. Any suggestions?
YarrJIT.cpp
.\wtf/HashSet.h(180) : error C2664: 'std::pair<_Ty1,_Ty2>::pair(const std::pair<
_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'std::pair<_Ty1,_Ty2>' to 'cons
t std::pair<_Ty1,_Ty2> &'
with
[
_Ty1=WTF::HashTableConstIteratorAdapter<WTF::HashTable<void *,void *
,WTF::IdentityExtractor<void *>,WTF::PtrHash<void *>,WTF::HashTraits<void *>,WTF
::HashTraits<void *>>,void *>,
_Ty2=bool
]
and
[
_Ty1=WTF::HashTableIterator<void *,void *,WTF::IdentityExtractor<voi
d *>,WTF::PtrHash<void *>,WTF::HashTraits<void *>,WTF::HashTraits<void *>>,
_Ty2=bool
]
and
[
_Ty1=WTF::HashTableConstIteratorAdapter<WTF::HashTable<void *,void *
,WTF::IdentityExtractor<void *>,WTF::PtrHash<void *>,WTF::HashTraits<void *>,WTF
::HashTraits<void *>>,void *>,
_Ty2=bool
]
Reason: cannot convert from 'std::pair<_Ty1,Ty2>' to 'const std::pair<
Ty1,_Ty2>'
with
[
_Ty1=WTF::HashTableIterator<void *,void *,WTF::IdentityExtractor<voi
d *>,WTF::PtrHash<void *>,WTF::HashTraits<void *>,WTF::HashTraits<void *>>,
_Ty2=bool
]
and
[
_Ty1=WTF::HashTableConstIteratorAdapter<WTF::HashTable<void *,void *
,WTF::IdentityExtractor<void *>,WTF::PtrHash<void *>,WTF::HashTraits<void *>,WTF
::HashTraits<void *>>,void *>,
_Ty2=bool
]
No user-defined-conversion operator available that can perform this conv
ersion, or the operator cannot be called
.\wtf/HashSet.h(179) : while compiling class template member function 's
td::pair<_Ty1,_Ty2> WTF::HashSet<ValueArg>::add(void *const &)'
with
[
_Ty1=WTF::HashTableConstIteratorAdapter<WTF::HashTable<void *,void *
,WTF::IdentityExtractor<void *>,WTF::PtrHash<void *>,WTF::HashTraits<void *>,WTF
::HashTraits<void *>>,void *>,
_Ty2=bool,
ValueArg=void *
]
c:\qt\4.8.4\src\3rdparty\webkit\source\javascriptcore\heap\MarkStack.h(7
4) : see reference to function template instantiation 'std::pair<_Ty1,_Ty2> WTF:
:HashSet<ValueArg>::add(void *const &)' being compiled
with
[
_Ty1=WTF::HashTableConstIteratorAdapter<WTF::HashTable<void *,void *
,WTF::IdentityExtractor<void *>,WTF::PtrHash<void *>,WTF::HashTraits<void *>,WTF
::HashTraits<void *>>,void *>,
_Ty2=bool,
ValueArg=void *
]
c:\qt\4.8.4\src\3rdparty\webkit\source\javascriptcore\heap\MarkStack.h(1
95) : see reference to class template instantiation 'WTF::HashSet<ValueArg>' bei
ng compiled
with
[
ValueArg=void *
]
Generating Code...
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0
\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop. -
Although Qt 4.8.4 fails to build (as described in the last post), Qt 5.0.2 succeeds using Visual Studio 2012.