0

При попытке компиляции код выдаёт две ошибки

1>qucs.obj : error LNK2019: unresolved external symbol "int __cdecl qMetaTypeId(void)" (??$qMetaTypeId@UiconCompInfoStruct@@@@YAHXZ) referenced in function "public: void __thiscall QVariant::setValue(struct iconCompInfoStruct const &)" (??$setValue@UiconCompInfoStruct@@@QVariant@@QAEXABUiconCompInfoStruct@@@Z) 1>dialogs.lib(moc_simmessage.obj) : error LNK2019: unresolved external symbol "int __cdecl qMetaTypeId<class SimMessage *>(void)" (??$qMetaTypeId@PAVSimMessage@@@@YAHXZ) referenced in function "private: static void __cdecl SimMessage::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" (?qt_static_metacall@SimMessage@@CAXPAVQObject@@W4Call@QMetaObject@@HPAPAX@Z)

но qMetaTypeId и QVariant содержаться в QCore.lib, а структура iconCompInfoStruct объявлена в коде

  • использую компилятор microsoft studio 2017,
  • библиотека QCore.lib подключена к проекту,
  • разрядность библиотек и проекта х32,
  • библиотеки и проект собраны для windows 7,
  • библиотека собрана в этой же студии,
  • рантайм и проекта и библиотек /MD

более того, символы из QT используются и в других частях проекта и нигде более подобных проблем не возникает

UDP: Я решил эту проблему, возможно у кого то она возникнет тоже: в моей версии QT был закомментирован кусок кода в qmetatype.h

template <typename T>
inline Q_DECL_CONSTEXPR int qMetaTypeId()
{
    Q_STATIC_ASSERT_X(QMetaTypeId2<T>::Defined, "Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system");
    return QMetaTypeId2<T>::qt_metatype_id();
}

1731 -- 1736 строки

раскомментирование этой части кода избавило от ошибок и позволило скомпилировать проект

  • @Harry посмотрите, пожалуйста, последние правки ТС и дайте им свою оценку. Правки могут привести к переоткрытию вопроса, закрытого вами по метке с золотом. – 0xdb Oct 04 '22 at 11:44
  • 1
    @0xdb Не вижу, что это особо меняет, но отозвал... – Harry Oct 04 '22 at 12:13

0 Answers0