Возможные проблемы при интеграции MSCV в Qt Creator? - PullRequest
0 голосов
/ 29 августа 2018

Я компилирую свой проект Qt в Qt Creator, используя 32-битный компилятор MSVC2017. Он компилируется и работает без ошибок, но некоторые функции больше не работают. (Я сравниваю это с компилятором MinGW.)

Поскольку проект довольно большой, и я не получаю никаких сообщений об ошибках (и отладчик не работает ), трудно сузить проблему. Поэтому я хотел бы задать вопрос: какие возможные проблемы возникают при переходе на MSVC в Qt Creator? (После решения всех проблем с конфигурацией и т. Д.) Некоторые классы Qt перестают работать? Некоторые сигналы перестают излучаться? С какими проблемами вы сталкивались раньше и как их решали?

Удаление файла сборки, очистка, запуск qmake, перестройка ничего не меняет.

1 Ответ

0 голосов
/ 29 августа 2018

Нет проблем, связанных с Qt Creator, потому что Qt Creator является IDE и имеет приблизительно ноль в зависимости от того, работают ли продукты для сборки или нет. MSVC 2017 - это поддерживаемая платформа Qt, так что с этим у вас все будет хорошо. Тогда вы можете спросить, добавляет ли MSVC 2017 какие-либо проблемы по сравнению с mingw. По моему опыту, раньше все было наоборот: обычно mingw добавлял проблемы, связанные с постоянно запаздывающими заголовками платформы по сравнению с MSVC. Надеюсь, в наши дни они должны быть на одном уровне.

Сборка выполняется в два этапа: qmake (или cmake), за которыми следует make. Qt Creator просто запускает эти два, с окружением, настроенным так, как будто vcvars был вызван первым. Вы получите идентичные сборки из командной строки, вызвав vcvarsall, qmake (или cmake), затем nmake (или jom или ninja, в зависимости от обстоятельств).

" некоторые функции больше не работают " не очень полезны: пожалуйста, измените вопрос, чтобы объяснить, что именно не работает. В идеале покажите несколько тестовых случаев, которые воспроизводят проблему. Вполне возможно, что у вас было какое-то неопределенное поведение, которое не создавало уродливую голову компилятору gnu, но имело место с MSVC. Это не редкость в больших проектах, если они не были разработаны с хорошим охватом тестами и статическим анализом.

...