Здесь будут дополнительные пометки:1. Как уже отмечал самые свежие средства Visual Studio 2017 наиболее быстрые. Причем даже в пределах одной Studio. Например, свежий компилятор от msvc2017v15.7 сработал быстрее чем компилятор msvc2017v15.6, процентов на 10. Что собственно не мало. Это сэкономило час для моей системы (Windows 7-64, Ноутбук i5-2430M/12Gb/SVGA Intel HD Graphics 3000 + GF GT555M).
Включение всех процессоров в самой системе Windows 7-64, никакого эффекта не произвело.
А вот работа антивируса замедлит компиляцию, полагаю здесь речь пойдет даже не о процентах. Так что отключаем. Обычно я ставлю AVGIS (ныне тот же AVAST, на сколько известно). Поговаривают, что его отключением не спасешся. Ставил на систему без антивируса. И вообще все дистрибутивы загружал на другом компьютере.
Время компиляции с помощью Build Tools for Visual Studio 2017v15.7:
jom - 11.53
nmake c mp (многопоточная компиляция) - 13.51
nmake - 15.31
Как видим jom рулит. Его стоит настроить в Qt Creator.
Впрочем, если делали все по инструкции, то jom должен быть уже настроен для MSVC.
Однако, есть мнение, что настроить стоит и для MinGW, но пока не уточнял, хотя рекомендации выполнял и Qt не ругался. Однако скорость не тестировал. Делать это необходимо на достаточно серьезных проектах, что бы заметить разницу.
При использовании nmake многопоточного режима в qt5vars.cmd меняем строчку
SET PATH=C:\DEV\jom_1_1_2;%PATH% на
SET cl=/MP:
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
:: Если использовали vs_Community.exe (и т.д.), строка выглядит так:
:: CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community]\VC\Auxiliary\Build\vcvarsall.bat" x86
SET _ROOT=C:\Qt\Qt5.11.1\5.11.1\Src
SET LLVM_INSTALL_DIR=C:\DEV\LLVM
SET QT_INSTALL=C:\msvc2017_32
:: Для многопоточного режима:
SET cl=/MP
SET PATH=C:\DEV\sqlite;%PATH%
SET PATH=C:\DEV\pthreads\Pre-built.2\dll\x86;%PATH%
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
SET _ROOT=
cd C:\Qt\Qt5.11.1\5.11.1\Src
cmd /k
Либо в строке конфигурации добавляем параметр
-mp:
configure -prefix %QT_INSTALL% -platform win32-msvc2017 -mp -debug-and-release -confirm-license -opensource -webengine-proprietary-codecs -sse2 -qt-sqlite -plugin-sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs -make tools -openssl -icu -I "C:\DEV\openssl-1.0.2o\dist\include" -L "C:\DEV\openssl-1.0.2o\dist\lib" -I "C:\DEV\icu\dist\include" -L "C:\DEV\icu\dist\lib" -opengl dynamicКСТАТИ:-opengl dynamic - без этого Qt webengine не соберется.
-webengine-proprietary-codecs - это что бы работал например mp3 формат.
И как отмечалось ранее Qt webengine собирается без проблем в Qt 5.9.6, но учтите, что ключ
-webengine-proprietary-codecs там не работает, если вас все таки смущает кривая сборка Qt webengine в Qt 5.11.1 (это касается и Qt 5.10).
2. Апгрейд на более новый и многоядерный процессор даст существенный прирост и комфорт. Однако не менее приятнее CCD в качестве системного диска, который так же даст прирост в производительности и повышения комфорта.
3. Если скачали весь пакет Build Tools for Visual Studio 2017 (13,1GB), используя команду:
C:\vs_BuildTools.exe --layout D:\VSBT2017 --lang en-US ru-RU
Реально он не нужен в полном объеме и в последствии, при желании, его можно сократить в несколько раз, убрав лишнее.
Так же можно не указывать ru-RU, если забудете убрать галочку при установке BuildTools, это грозит проблемами в Qt консоли.
А вот скачать нормально Visual Studio 2017 Community (38.1GB) пытался несколько раз:
C:\vs_Community.exe --layout D:\MSVC2017 --lang en-US ru-RU
Удалось только однажды. В остальных случаях все время выдается пара ошибок, хотя все вроде ставится без проблем. Может вы будете более удачливы.
4. Увеличение числа комплектов тормозит систему. И насколько знаю средства MSVC2017 совместимы сверху вниз. Поэтому, вероятно, разумно ограничить их число до минимума:
MSVC2017 64bit
MSVC2017 32bit
MinGW 32bit
При необходимости установки комплектов MSVC2015 не забываем поставить дополнительно пару галочек при установке BuildTools:
И соответственно при установке Qt 5.11.1:
И вероятно для создания андроид приложений стоит поставить и эту пару комплектов:
5. Вероятно было бы более аккуратно определить каталог DEV здесь:
C:\Qt\DEV
Но, при деинсталляции Qt 5.11.1, рускуем все потерять.
То же касается и сборки нового комплекта в стандартном каталоге:
C:\Qt\Qt5.11.1\5.11.1\msvc2017_32
К тому же, при компиляции с помощью jom, в конце выскочили какие то неясные вопросики
. Возможно пути длинноваты.
6. Ну а это выскакивает при компиляции в дебаг, примеров с Qt webengine:
И если приглядеться, что за странные пути
f:\dd\vctools\src\srartup\... Откуда QT их берет, в этом я не разбираюсь...
7. Начиная с QT 5.11 для сборки QDoc требуется LLVM. В инструкции все это предусматривается и в библиотеке (C:\msvc2017_32\bin) присутствует qdoc.exe, который ранее не удавалось получить.
Однако, так и не смог правильно собрать саму документацию. Она не хочет собираться в указанной папке, хотя пользовался официальной инструкцией.
Но нам и не надо ее собирать, поскольку, она устанавливается при инсталляции Qt 5.11.1.
Но вот освобождает ли это разработчика от установки LLVM, если ему понадобится собрать свою документацию, мне не известно.
Полагаю начинающему этот компонент вовсе не нужен.
8. Configure summary для предложенного выше комплекта (использовал бы спойлер, но что то не нашел).
Если не напутали с пропиской расположения каталогов и настройками конфигурации, то выделенные элементы должны быть иметь статус yes:
Build type: win32-msvc (i386, CPU features: sse sse2)
Configuration: sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx
512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples
f16c largefile precompile_header rdrnd shani x86SimdAlways shared debug_and_rel
ease release debug build_all c++11 concurrent dbus no-pkg-config release_tools s
tl
Build options:
Mode ................................... debug and release; default link: debu
g; optimized tools
Optimize release build for size ........ no
Building shared libraries .............. yes
Using C++ standard ..................... C++11
Using gold linker ...................... no
Using precompiled headers .............. yes
Using LTCG ............................. no
Target compiler supports:
SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
AVX .................................. AVX AVX2
AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI
Other x86 ............................ AES F16C RDRAND SHA
Build parts ............................ libs tools
App store compliance ................... no
Qt modules and options:
Qt Concurrent .......................... yes
Qt D-Bus ............................... yes
Qt D-Bus directly linked to libdbus .... no
Qt Gui ................................. yes
Qt Network ............................. yes
Qt Sql ................................. yes
Qt Testlib ............................. yes
Qt Widgets ............................. yes
Qt Xml ................................. yes
Support enabled for:
Using pkg-config ....................... no
udev ................................... no
Using system zlib ...................... no
Qt Core:
DoubleConversion ....................... yes
Using system DoubleConversion ........ no
GLib ................................... no
iconv .................................. no
ICU .................................... yes Tracing backend ........................ <none>
Logging backends:
journald ............................. no
syslog ............................... no
slog2 ................................ no
Using system PCRE2 ..................... no
Qt Network:
getifaddrs() ........................... no
IPv6 ifname ............................ no
libproxy ............................... no
OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no
OpenSSL 1.1 ............................ no
SCTP ................................... no
Use system proxies ..................... yes
Qt Gui:
Accessibility .......................... yes
FreeType ............................... yes
Using system FreeType ................ no
HarfBuzz ............................... yes
Using system HarfBuzz ................ no
Fontconfig ............................. no
Image formats:
GIF .................................. yes
ICO .................................. yes
JPEG ................................. yes
Using system libjpeg ............... no
PNG .................................. yes
Using system libpng ................ no
EGL .................................... yes
OpenVG ................................. no
OpenGL:
ANGLE ................................ yes Combined ANGLE Library ............... no
Desktop OpenGL ....................... no
Dynamic OpenGL ....................... yes OpenGL ES 2.0 ........................ no
OpenGL ES 3.0 ........................ no
OpenGL ES 3.1 ........................ no
OpenGL ES 3.2 ........................ no
Vulkan ................................. yes Session Management ..................... yes
Features used by QPA backends:
evdev .................................. no
libinput ............................... no
INTEGRITY HID .......................... no
mtdev .................................. no
tslib .................................. no
xkbcommon-evdev ........................ no
QPA backends:
DirectFB ............................... no
EGLFS .................................. no
LinuxFB ................................ no
VNC .................................... no
Mir client ............................. no
Windows:
Direct 2D ............................ yes
DirectWrite .......................... yes
DirectWrite 2 ........................ yes
Qt Widgets:
GTK+ ................................... no
Styles ................................. Fusion Windows WindowsVista
Qt PrintSupport:
CUPS ................................... no
Qt Sql:
DB2 (IBM) .............................. no
InterBase .............................. no
MySql .................................. no
OCI (Oracle) ........................... no
ODBC ................................... yes
PostgreSQL ............................. no
SQLite2 ................................ no
SQLite ................................. yes
Using system provided SQLite ......... no
TDS (Sybase) ........................... no
Qt Testlib:
Tester for item models ................. yes
Qt SerialBus:
Socket CAN ............................. no
Socket CAN FD .......................... no
QtXmlPatterns:
XML schema support ..................... yes
Qt QML:
QML network support .................... yes
QML debugging and profiling support .... yes
QML delegate model ..................... yes
Qt Quick:
Direct3D 12 ............................ yes
AnimatedImage item ..................... yes
Canvas item ............................ yes
Support for Qt Quick Designer .......... yes
Flipable item .......................... yes
GridView item .......................... yes
ListView item .......................... yes
Path support ........................... yes
PathView item .......................... yes
Positioner items ....................... yes
Repeater item .......................... yes
ShaderEffect item ...................... yes
Sprite item ............................ yes
Qt Gamepad:
SDL2 ................................... no
Qt 3D:
Assimp ................................. yes
System Assimp .......................... no
Output Qt3D Job traces ................. no
Output Qt3D GL traces .................. no
Use SSE2 instructions .................. no
Use AVX2 instructions .................. no
Aspects:
Render aspect ........................ yes
Input aspect ......................... yes
Logic aspect ......................... yes
Animation aspect ..................... yes
Extras aspect ........................ yes
Qt 3D Renderers:
OpenGL Renderer ........................ yes
Qt 3D GeometryLoaders:
Autodesk FBX ........................... no
Qt Wayland Client ........................ no
Qt Wayland Compositor .................... no
Qt Bluetooth:
BlueZ .................................. no
BlueZ Low Energy ....................... no
Linux Crypto API ....................... no
WinRT Bluetooth API (desktop & UWP) .... yes
Qt Sensors:
sensorfw ............................... no
Qt Quick Controls 2:
Styles ................................. Default Fusion Imagine Material Unive
rsal
Qt Quick Templates 2:
Hover support .......................... yes
Multi-touch support .................... yes
Qt Positioning:
Gypsy GPS Daemon ....................... no
WinRT Geolocation API .................. no
Qt Location:
Qt.labs.location experimental QML plugin . yes
Geoservice plugins:
OpenStreetMap ........................ yes
HERE ................................. yes
Esri ................................. yes
Mapbox ............................... yes
MapboxGL ............................. no
Itemsoverlay ......................... yes
Qt Multimedia:
ALSA ................................... no
GStreamer 1.0 .......................... no
GStreamer 0.10 ......................... no
Video for Linux ........................ no
OpenAL ................................. no
PulseAudio ............................. no
Resource Policy (libresourceqt5) ....... no
Windows Audio Services ................. yes
DirectShow ............................. yes
Windows Media Foundation ............... yes
Media player backend ................... DirectShow
Qt WebEngine:
Embedded build ......................... no
Pepper Plugins ......................... yes
Printing and PDF ....................... yes
Proprietary Codecs ..................... yes Spellchecker ........................... yes
Native Spellchecker .................... no
WebRTC ................................. yes
Use System Ninja ....................... no
Geolocation ............................ yes
Use v8 snapshot ........................ yes
Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.