Портирование Qt4 в Qt5: неразрешенные внешние символы

Qt5 — это новое поколение Qt, и оно имеет некоторые изменения.

У меня есть проект строительства хорошо с Qt4. Я скачал пакет Qt5-VisualStudio2010 и пытаюсь перенести свой проект с Qt4 на Qt5. Проблемы возникают.

Все пути включения были исправлены. Тем не менее, компилятор теперь сообщает сотни «неразрешенных внешних символов» (почти все вызовы функций, похоже, что компилятор не может найти какой-либо файл .lib). Я даже пытался добавить все .lib файлы, найденные в папке Qt SDK, но безрезультатно. Самый базовый класс и метод: QApplication :: exec (…) также указывается как «неразрешенный символ».

Файл проекта был изменен, чтобы соответствовать упаковке Qt5:

myproject.pro file:
QT += widgets

У кого-нибудь есть подобный опыт с этим новым выпуском Qt?

3

Решение

Из ‘qt_newbie89’ (http://qt-project.org/forums/viewthread/23200):

Я «случайно» решил проблему. Я нажал правой кнопкой мыши на
папку проекта в окнах проекта и выберите qmake. После этого,
выберите Run и все ошибки исчезли. Я не знаю, почему это работает
Кстати.

Из ‘ChrisW67’ (http://qt-project.org/forums/viewthread/23253/):

Файл Makefile не «испортился»: он был именно таким, как вы
оставил его, полный команд и путей, подходящих для предыдущего Qt 4
монтаж. Когда Qt Creator запустил nmake для сборки проекта, nmake сделал
автоматически не запускает qmake для генерации Makefile, потому что
(нетронутый) Makefile был новее, чем pro-файл, который его сгенерировал.
Это нормальное и правильное поведение, но это привело к
несоответствие между вашим Qt5 в стойле и ожидаемой установкой Qt4.

Моя поговорка:
Да, это действительно решает проблему связывания! Проблема была в том, что когда проект создавался с помощью Qt4, файл ‘make’ также создавался вместе с проектом. Когда я удалил Qt4, установил Qt5 и импортировал старый проект с помощью Qt5 (с новым Qt Creator), возможно, файл ‘make’ был поврежден.

3

Другие решения

Я подозревал, что вы не единственный, у кого была эта проблема. Вы смотрели на: этот еще? В нем говорится о скрипте PERL в qt / base / bin, который называется: fixqt4headers.pl. Это предназначено для исправления заголовков. Я заметил еще одну ссылку, которая может помочь, если это не поможет, попробуйте этот, это выглядит довольно хорошо продуманным. И нет, я не пробовал. Я еще не обновился до Qt 5. CHEERS!

1

Это случилось со мной, и я сделал следующее.

  1. Дополнительно связан Qt5Widgetsd.lib
  2. Изменено свойство проекта «Обрабатывать Wchar_t как встроенный» на true (в разделе C ++ -> Language).
1
По вопросам рекламы [email protected]