Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

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.


Log in to reply