Название: Проблема с QMap при компиляции на Vista
Отправлено: ufna от Октябрь 24, 2007, 07:25
Здравсвуйте! Пользуюсь связкой MSVS 05 + Qt 4.2.0. Ранее, писал проекты на Windows XP, все работало отлично. Сейчас пришлось перейти на Vista, после чего при компиляции всех проектов вылазит следующее: 1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(906) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration 1> d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(891) : see declaration of 'QMultiMap<Key,T>::replace' 1> definition 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' 1> existing declarations 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' 1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(910) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration 1> d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(892) : see declaration of 'QMultiMap<Key,T>::insert' 1> definition 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' 1> existing declarations 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' 1>mainWidget.cpp 1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(864) : error C2244: 'QMultiHash<Key,T>::replace' : unable to match function definition to an existing declaration 1> d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(849) : see declaration of 'QMultiHash<Key,T>::replace' 1> definition 1> 'QHash<Key,T>::iterator QMultiHash<Key,T>::replace(const Key &,const T &)' 1> existing declarations 1> 'QHash<Key,T>::iterator QMultiHash<Key,T>::replace(const Key &,const T &)' 1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(868) : error C2244: 'QMultiHash<Key,T>::insert' : unable to match function definition to an existing declaration 1> d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(850) : see declaration of 'QMultiHash<Key,T>::insert' 1> definition 1> 'QHash<Key,T>::iterator QMultiHash<Key,T>::insert(const Key &,const T &)' 1> existing declarations 1> 'QHash<Key,T>::iterator QMultiHash<Key,T>::insert(const Key &,const T &)' 1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(906) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration 1> d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(891) : see declaration of 'QMultiMap<Key,T>::replace' 1> definition 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' 1> existing declarations 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' 1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(910) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration 1> d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(892) : see declaration of 'QMultiMap<Key,T>::insert' 1> definition 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' 1> existing declarations 1> 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' В общем, знает ли кто как решить данную проблему?
Название: Re: Проблема с QMap при компиляции на Vista
Отправлено: Mike от Октябрь 24, 2007, 07:55
Попробуй хотфикс для Visual Studio 2005 http://support.microsoft.com/kb/930198, должно заработать
Название: Re: Проблема с QMap при компиляции на Vista
Отправлено: Sergey B. от Октябрь 24, 2007, 11:28
Попробуй хотфикс для Visual Studio 2005 http://support.microsoft.com/kb/930198, должно заработать
Там есть пример кода для проверки этого. Создай простой файлик, скажем template.cpp: template <class T> class A { public: typedef int N_A; };
template <class T> class B : public A<T> { public: typename A<T>::N_A test(); };
template <class T> typename A<T>::N_A B<T>::test() { return 0; } и попробуйте скомпильнуть.
Название: Re: Проблема с QMap при компиляции на Vista
Отправлено: ufna от Октябрь 24, 2007, 14:59
Спасибо! Хотфикс поставил (только как то косо, сетап пришлось прервать), но он работает, и теперь все компилится. Еще раз спасибо! :)
|