Сборка MUR IDE в Windows
Обратите внимание, что инструкции могут различаться в зависимости от используемых инструментов, окружения и версий софта. Сборка будет происходить в Visual Studio 2019 с компилятором MSVC. Аналогично можно и собрать, к примеру, с использованием Qt Creator и MinGW.
Подготовка
-
Необходимо, чтобы были установлены:
- CMake
- Git
- Visual Studio, если он будет использоваться (кстати, есть Qt Visual Studio Add-in)
-
Про переменные CMake, которые надо будет указывать:
- В основном это пути к библиотекам, и они будут зависеть от того, где устанавливались или собирались библиотеки. То есть, данные пути будут разными для конкретного окружения. Указанные здесь пути даны лишь для примера.
- Самый простой способ задать переменные CMake - указывать их прямо в файле
CMakeLists.txt
, который лежит в корне проекта (добавив строчку видаset(LIB_DIR DIR_PATH)
). При этом, не стоит коммитить в репозиторий такие изменения сборочной конфигурации, где жёстко прописаны пути, которые актуальны лишь для вашего окружения. - А лучше воспользоваться локальными настройками, это можно сделать в Visual Studio (
Project / Cmake Settings for...
), так и в Qt Creator (Projects / Build / CMake
) через графические конфигураторы. Тогда изменения будут сохраняться в отдельный пользовательский конфиг (например CMakeLists.txt.user или CMakeSettings.json). Такой вариант предпочтительнее, но можно делать как удобнее.
Про vcpkg
- Для загрузки, сборки и установки библиотек (ZeroMQ, OpenCV, Qt) можно воспользоваться пакетным менеджером vcpkg. Это может быть удобнее: не нужно скачивать и собирать каждую библиотеку, не нужно прописывать пути и всё будет делаться одной командой. Но при этом нужно помнить, что при такой установке все библиотеки будут собираться с нуля. В то же время, Qt и OpenCV предоставляют готовые сборки для Windows. Так что решение остаётся за вами.
- Установка:
git clone https://github.com/Microsoft/vcpkg
cd vcpkg; ./bootstrap-vcpkg.bat
./vcpkg integrate install
- после этого все установленные библиотеки (теоретически) должны автоматически подхватываться при сборке, и не нужно будет указывать пути к библиотекам.
- Пример использования:
./vcpkg install zeromq:x64-windows
(надо не забывать про:x64-windows
)
OpenCV
- Важно, чтобы была включена поддержка ffmpeg.
- Можно установить дистрибутив с сайта OpenCV или же собрать через vcpkg.
- Указываем для CMake путь к OpenCV, если ставили готовую сборку:
set(OpenCV_DIR "D:/projects/opencv/build")
Qt 5
- Теоретически можно установить из vcpkg, но это довольно долго и больно. Вместо этого, можно воспользоваться готовым дистрибутивом.
- Загружаем дистрибутив Qt 5 с qt.io
- Устанавливаем Qt (при установке нужно выбрать также компонент Qt WebEngine).
- Внимательно смотрим на выбираемый компилятор: если собирать через MSVC - то он должен быть установлен (например, вместе с Visual Studio). Если сборка будет через MinGW (пример, в Qt Creator), то нужно не забыть выбрать в установщике и сам компилятор MinGW. Также надо выбрать соответствующую сборку Qt для конкретного компилятора.
- Возможно, потребуется указать путь к Qt:
set(CMAKE_PREFIX_PATH "C:/Qt/5.15.1/msvc2019_64")
Собираем проект
- Клонируем и открываем проект MUR IDE в Visual Studio:
File / Open / CMake -> mur_ide/CMakeLists.txt
- Собираем. Внимательно смотрим на возникающие ошибки, возможно где-то не был прописан правильный путь к некой библиотеке.
- В Qt есть один нужный нам инструмент -
windeployqt.exe
, который автоматически копирует требуемые библиотеки Qt, необходимые для запуска. Путь к этой программе зависит от компилятора и версии Qt, например это может бытьC:\Qt\5.15.1\msvc2019_64\bin
. Открываем командную строку (кстати, после установки Qt из дистрибутива, в меню "пуск" появляется пункт видаQt 5.15.1 (MSVC 2019 64-bit)
, который открывает консоль сразу в нужной директории). Команда будет иметь примерно следующий вид:windeployqt.exe --qmldir "D:\projects\mur_ide\resources" "D:\projects\mur_ide\build\mur_ide.exe"
- Обратите внимание на пути. Нужно указать аргумент
--qmldir
и для него путь к ресурам (чтобы скопировались нужные QML-компоненты, иначе не заработает), а также путь к собранному бинарнику.
- Также может потребоваться скопировать библиотеки OpenCV и ZeroMQ. Это будет зависеть от их способа установки и наличия в
PATH
. Достаточно читать сообщения об ошибках, чтобы стало понятно какие ещё библиотеки требуется положить рядом с бинарником. - Нужно скопировать содержимое директории
resources
из исходников в такую же директорию рядом с собранным бинарником (обычно эту папку создаётwindeployqt
).
Далее: Сборка MUR Simulator