Подтвердить что ты не робот

Windows Qt с MinGw или Visual Studios?

Я пытаюсь скомпилировать qt и сталкиваюсь с двумя вариантами: используете ли MinGw или компилятор Visual Studio? В чем разница между ними и есть ли какие-либо преимущества/недостатки использования одного или другого?

4b9b3361

Ответ 1

Они оба прекрасные инструменты. Важно знать, что они не обязательно хорошо играют вместе. То есть, когда вы связываете библиотеки вместе, все они должны использовать одну и ту же цепочку инструментов. По этой причине, на мой взгляд, лучше использовать компилятор Visual Studio (MSVC), так как он является "гражданином первого класса" в Windows; другие рассматриваются как второй класс.

Я имею в виду, что вы можете в значительной степени рассчитывать на наличие сторонних библиотек, доступных в двоичной форме с использованием MSVC, или, по крайней мере, инструкции по сборке, доступные с помощью MSVC. У нас было много проблем с сторонними библиотеками, которые не могли создавать MinGW или иметь несуществующие инструкции по сборке, а также делать много ручного редактирования Makefile и т.д. У вас гораздо больше шансов, что все будет "просто работать", если вы используете MSVC.

Это наш опыт (мы начали с MinGW); ваш пробег может меняться.

Ответ 2

MinGW использует GCC, а GCC имеет одно существенное преимущество для MSVC - он переносимый. MSVC ограничен платформами Microsoft, GCC поддерживает почти все, включая 8-битные встроенные процессоры. Это означает, что вы можете использовать одни и те же директивы и компилировать расширения на разных платформах.

Кроме того, MinGW компактен, быстро устанавливается, а версия даже поставляется вместе с Qt. В отличие от MSVC, который даже не доступен отдельно, вам нужно установить визуальную студию, которая сама устанавливает кучу мусора, который вам не нужен, но не может отказаться.

UPDATE Теперь можно получить компилятор MS без VS, a.k.a MS Build Tools. Кроме того, если вы хотите создать хром (например, QtWebEngine) для Windows, у вас есть, чтобы использовать MSVC, это ограничение, налагаемое Google, поскольку они поддерживают только создание с помощью компилятора на платформе.

И последнее, но не менее важное: вы можете получить MSYS2, у которого есть хранилище с MinGW и тонна готовых к использованию статических и динамических библиотек для него, поэтому вы можете избежать трудного и часто возникающего процесса сбоя.