Эта ошибка возникает из-за того, что вы используете проект, скомпилированный в одной версии Qt.
Основная причина этого заключается в том, что Qt использует инструмент moc, который создает клейкий код для обработки слотов сигналов и прочего.
Moc делает это путем анализа заголовочных файлов, чтобы найти определения, такие как Q_OBJECT, signal :, slot: и т. Д.
Этот код полностью привязан к версии Qt, которая использовалась для создания этого кода.
В некоторых случаях этот код полностью несовместим даже для той же версии библиотеки Qt, для которой был настроен другой набор опций.
Этот случай верен даже для некоторых изменений в .pro, например, использование CONFIG + = no_keywords заставляет moc генерировать другой код для склеивания, позволяющий Qt работать с другими библиотеками, такими как boost, которые предоставляют механизмы слотов сигналов, используя те же ключевые слова, как Qt.
Итак, вкратце, всякий раз, когда вам нужно скомпилировать проект Qt с другой библиотекой Qt, убедитесь, что вы делаете следующее:
1. запустить: сделать чистым
2. запустить: qmake
3. запустить: сделать
это всегда даст вам чистое дерево сборки.