2017-10-11 1 views
0

Je reçois ce problème lorsque j'émets la commande nmake dans le VS2015 x86 Native Tools Command Prompt lorsque vous essayez de compiler Qt:Qt nmake: erreur C3203: 'map': modèle de classe non spécialisé ne peut pas être utilisé comme modèle d'argument pour le paramètre template 'base', attendu un vrai type

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\hash_map(17): error C2338: <hash_map> is deprecated and will be REMOVED. Please use <unordered_map>. You can define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS to acknowledge that you have received this warning. 
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\hash_set(17): error C2338: <hash_set> is deprecated and will be REMOVED. Please use <unordered_set>. You can define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS to acknowledge that you have received this warning. 
c:\Qt-2015\4.8.6\msvc2015\src\3rdparty\clucene\src\CLucene/util/VoidMap.h(228): error C2923: 'std::map': 'std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::_Compare' is not a valid template type argument for parameter '_Pr' 
     with 
     [ 
      _Kty=lucene::index::IndexReader::CloseCallback, 
      _Ty=void *, 
      _Pr=lucene::index::IndexReader::CloseCallbackCompare, 
      _Alloc=std::allocator<std::pair<const lucene::index::IndexReader::CloseCallback ,void *>> 
     ] 
c:\Qt-2015\4.8.6\msvc2015\src\3rdparty\clucene\src\CLucene/index/IndexReader.h(96): note: see reference to class template instantiation 'lucene::util::CLSet<lucene::index::IndexReader::CloseCallback,void *,lucene::index::IndexReader::CloseCallbackCompare,lucene::index::IndexReader::CloseCallbackCompare,lucene::util::Deletor::Dummy>' being compiled 
c:\Qt-2015\4.8.6\msvc2015\src\3rdparty\clucene\src\CLucene/util/VoidMap.h(229): error C2923: 'std::map': 'std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::_Compare' is not a valid template type argument for parameter '_Pr' 
     with 
     [ 
      _Kty=lucene::index::IndexReader::CloseCallback, 
      _Ty=void *, 
      _Pr=lucene::index::IndexReader::CloseCallbackCompare, 
      _Alloc=std::allocator<std::pair<const lucene::index::IndexReader::CloseCallback ,void *>> 
     ] 
c:\Qt-2015\4.8.6\msvc2015\src\3rdparty\clucene\src\CLucene/util/VoidMap.h(230): error C3203: 'map': unspecialized class template can't be used as a template argument for template parameter 'base', expected a real type 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.EXE"' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.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. 
NMAKE : fatal error U1077: 'cd' : return code '0x2' 
Stop. 

J'ai suivi these étapes pour configurer Qt et je suis en cours d'exécution dans l'erreur à l'étape 6.

Toute pensée? Je vous en suis reconnaissant.

+0

Vous pouvez trouver ce helpfull http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/ – Slava

Répondre

1

Ceci est un bug dans QT avant la version 5.5 lors de la compilation avec Visual Studio 14.0.

Je suppose que vous essayez de compiler la version 4.8.

Regardez dans le lien ci-dessous .... Vous pouvez voir votre erreur.

https://bugreports.qt.io/browse/QTBUG-45961

Vous devrez peut-être télécharger la version Qt5.5 ou plus récent pour compiler avec Visual Studio 14.0.

+0

Eh bien, je ' J'ai lutté avec ça toute la journée, merci pour votre réponse. J'ai besoin de la version 4.8 pour compiler le code source que j'ai. Savez-vous si la version 5 est rétrocompatible? – GreenSaber

+0

Entre 4,8 et 5, la compatibilité descendante, la plupart du temps devrait être OK. – Naidu