Настройка VSCode для сборки проектов Qt6 и работы с ними
VSCode удобная, не требовательная к ресурсам и, главное гибко настраиваемая среда разработки. Она может быть использована и для разработки ПО с использованием Фреймворка Qt6. В какой-то мере, некоторыми функциями проще пользоваться в QtCreator, но они нужны не так часто и не всем.
Всё больше разработчиков переходят от использования QWidgets на QtQuick, для таких разработчиков VSCode будет не менее удобен чем QtCreator. Учитывая гибкие возможности для настройки и наличие большого числа расширений, работа с VSCode может быть более удобной и приятной!
Сегодня мы рассмотрим настройку VsCode для использования фреймворка Qt6 собранного в статье - https://blog.altuninvv.ru/qt/qt6/установка-qt6-из-исходного-кода-в-windows-c-использованием-vcpkg-и-msys2.
Для чистоты эксперимента мы будем работать с виртуальной машиной Hyper-V с только что установленным Windows 10 22H2.
Обновления и Defender отключены чтобы не мешать тестированию.
Перенос собранной версии Qt6 на другой ПК
Скопируйте с виртуальной машины на которой производилась сборка Qt6, любым удобным вам способом папку:
D:\tools\vcpkg\installed\x64-mingw-dynamicЧтобы не возникло проблем я скопирую её в корень диска c:\
Переименуем папку:
cd c:\
move c:\x64-mingw-dynamic c:\qt6Пропишем путь до нужных папок. Запустим PowerShell с правами администратора и в консоли запустим:
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";c:\qt6\debug\bin;c:\qt6\bin;C:\msys64\usr\bin;C:\msys64\mingw64\bin;c:\qt6\tools\Qt6\bin", [EnvironmentVariableTarget]::Machine)Закроем окна с консолями PowerShell и cmd
Запустим cmd, проверим:
pathРезультат:
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\user\AppData\Local\Microsoft\WindowsApps;c:\qt6\debug\bin;c:\qt6\bin;C:\msys64\usr\bin;C:\msys64\mingw64\bin;c:\qt6\tools\Qt6\bin;C:\Users\user\AppData\Local\Microsoft\WindowsApps;Наши папки успешно были добавлены в переменную Path.
Обратите внимание! Если вы производите настройку на уже настроенном ПК, убедитесь, чтобы добавленные пути в списке были как можно выше и их порядок тоже очень важен!
Из cmd проверим, как запускается qmake6
Запуск будет неудачен:
Несмотря на то, что мы собрали Qt6, для его работы требуются библиотеки STD C++, которые поставляются с компилятором GCC. Их установку мы произведем с помощью Msys2!
Установка Msys2 для разработки с помощью Qt6 и VSCode
Установку Msys2 я уже рассматривал в этой статье - https://blog.altuninvv.ru/qt/qt6/установка-qt-660-с-помощью-msys2-в-windows-10
Просто следуйте инструкциям до раздела - Установка пакетов Qt6.
Обратите внимание! Устанавливать в Msys2 пакеты для Qt6 НЕ НУЖНО!
Через консоль Msys2 установим нужные пакеты:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja Проверим:
qmake6 -vРезультат:
QMake version 3.1
Using Qt version 6.8.3 in C:/qt6/libВсе необходимые библиотеки установлены.
Чтобы точно быть уверенными, что всё установилось, запустим Qt Widgets Designer.
Из cmd запустим:
designerРезультат:
Программа успешно запущена!
Установка VSCode
Загрузим установщик VSCode:
cd %USERPROFILE%\Downloads
curl -L "https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user" --output vscode_setup.exeЗапустим установку:
.\vscode_setup.exeПросто нажимаем «Далее» и ждем, пока всё не установится.
После окончания копирования файлов снимем галочку и нажмем «Завершить».
Закроем все запущенные консоли cmd.
Создаем папку для проектов
Создадим папку для проектов, чтобы содержать файловую систему в чистоте:
В консоли cmd запустим:
mkdir c:\projectsПерейдем в папку и запустим:
cd c:\projectscode .Будет запущен редактор:
Нажмем
Yes, I trust the authorsЗакроем вкладку:
Walkthrough: Setup VS CodeРедактор готов к настройке.
Создаем профиль VSCode для Qt6
Чтобы не сваливать всё в VSCode существуют профили. Каждый профиль хранит свою копию настроек и расширений. Поэтому расширения и настройки для работы с C++ не будут занимать лишнее место в оперативной памяти и зря тратить ресурсы процессора, при работе с проектами на PHP.
Для работы с Qt6 создадим отдельный профиль.
Нажмем F1 и введем profile
Выберем:
Preferences: Open Profiles (UI)Откроется окно с профилями.
Нажмем New Profile
В поле Name
Введем:
Qt6Во всех остальных полях оставим None
Нажмем Create
Выберем пункт Qt6 и нажмем на галочку, чтобы сделать профиль активным:
Если вы хотите вернуться к предыдущим настройкам, просто выбейте профиль Default или любой другой.
Установка расширений для работы с QT6
Для работы с Qt6 нам потребуется несколько расширений.
Нажмем Ctrl+Shif+X
Откроется панель расширений:
В строке поиска введем Qt
Выберем Qt Extension Pack
От автора: Qt Group qt.io
Нажмем Install
На запрос:
Ответим Trust Publisher & Install
Дождемся окончания установки всех расширений
Очистим фильтр расширений, для этого нажмем на кнопку, результаты поиска будут очищены и откроется список установленных расширений:
Все необходимые расширения установлены.
Закроем все окна VSCode.
Проверяем доступность CMake и Ninja
Откроем консоль VSCode нажав Ctrl+~ и введем команды
ninja
cmake –versionРезультат:
ninja: error: loading 'build.ninja': The system cannot find the file specified.
cmake version 4.1.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).Нужные для сборки программы установлены.
Подготовка к созданию проекта
Ранее мы установили расширения для Qt. Одно из них позволяет создавать новые пустые проекты с помощью утилиты qtcli.exe давайте скопируем ее в папку с нашим Qt6.
Проверим версию расширения
Из cmd запустим:
dir C:\Users\user\.vscode\extensions\theqtcompany.qt-core-*Результат
Содержимое папки C:\Users\user\.vscode\extensions
12.08.2025 19:20 <DIR> theqtcompany.qt-core-1.6.0
0 файлов 0 байт
1 папок 126 597 955 584 байт свободноНа момент написания статьи версия 1.6.0
Используя полученную информацию скопируем файл в папку Qt6:
xcopy C:\Users\user\.vscode\extensions\theqtcompany.qt-core-1.6.0\res\qtcli\qtcli-windows-amd64-1.6.0\qtcli.exe c:\Qt6\bin\Обратите внимание, после выхода новых версий путь до файла может измениться!
Запустим новую консоль cmd, проверим:
qtcliРезультат:
A CLI for creating Qt project and files
Usage:
qtcli [flags]
qtcli [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
new Create a new project under the current directory
new-file Create a new file in the current directory
preset Inspect and manage presets
server Start or stop a rest server
test Test specific features
Flags:
-h, --help help for qtcli
-v, --verbose Enable verbose output
--version version for qtcli
Use "qtcli [command] --help" for more information about a command.Создаем тестовый проект
Чтобы настроить расширения для Cmake и Qt6 нам нужно создать простой проект на Qt6.
Откроем консоль cmd
Перейдем в папку наших проектов:
cd c:\projectsВведем:
qtcli new testqt1? Pick a preset
→ [Default] @projects/cpp/console
[Default] @projects/cpp/qtquick
[Default] @projects/cpp/qwidget
[Manually select features]Выберем
→ [Default] @projects/cpp/qtquickНажмем Enter
✔ Pick a preset [Default] @projects/cpp/qtquickВ текущей папке будет создана папка testqt1
dir .Содержимое папки c:\projects
12.08.2025 19:37 <DIR> .
12.08.2025 19:37 <DIR> ..
12.08.2025 19:37 <DIR> testqt1
0 файлов 0 байт
3 папок 126 627 074 048 байт свободноОткрываем проект в VsCode
В консоли cmd перейдем в папку с проектом:
cd c:\projects\testqt1Запустим:
code .Результат:
Если мы сейчас откроем панель расширений, то обнаружим что все наши расширения пропали.
На самом деле, они никуда не пропали, просто нам нужно выбрать профиль для проекта, это потребуется делать для каждого создаваемого проекта при первом открытии.
Нажмем F1 и введем profile
Выберем Preferences: Open Profiles (UI)
Откроется окно с профилями.
Активируем профиль Qt6
Появится иконка панели CMake и окно с выбором комплекта
Выберем
GCC 15.2.0 x86_64-w64-mingw32Закроем вкладку Profiles и откроем панель CMake
Выделим пункт Configure – [No Kit Selected]
Нажмем на кнопку редактирования:
Снова выберем набор
GCC 15.2.0 x86_64-w64-mingw32Будет запущено конфигурирование проекта. Дождитесь окончания процесса:
[cmake] -- Configuring done (36.4s)
[cmake] -- Generating done (1.4s)
[cmake] -- Build files have been written to: C:/projects/testqt1/build
Вывод команды будет таким:
[proc] Executing command: C:\msys64\mingw64\bin\cmake.EXE --version
[proc] Executing command: C:\msys64\mingw64\bin\cmake.EXE -E capabilities
[variant] Loaded new set of variants
[kit] Detected kits definition version change from undefined to 2. Silently scanning for kits.
[proc] Executing command: C:\msys64\mingw64\bin\gcc.exe -v
[proc] Executing command: C:\msys64\mingw64\bin\x86_64-w64-mingw32-gcc-15.2.0.exe -v
[proc] Executing command: C:\msys64\mingw64\bin\x86_64-w64-mingw32-gcc.exe -v
[proc] Executing command: C:\msys64\mingw64\bin\x86_64-w64-mingw32-gcc.exe -v
[kit] Found Kit (trusted): GCC 15.2.0 x86_64-w64-mingw32 (mingw64)
[kit] Found Kit (trusted): GCC 15.2.0 x86_64-w64-mingw32 (mingw64)
[kit] Found Kit (trusted): GCC 15.2.0 x86_64-w64-mingw32 (mingw64)
[proc] Executing command: C:\msys64\mingw64\bin\gcc.exe -v
[main] Configuring project: testqt1
[proc] Executing command: C:\msys64\mingw64\bin\cmake.EXE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=C:\msys64\mingw64\bin\gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=C:\msys64\mingw64\bin\g++.exe --no-warn-unused-cli -S C:/projects/testqt1 -B c:/projects/testqt1/build -G Ninja
[cmake] Not searching for unused variables given on the command line.
[cmake] -- The CXX compiler identification is GNU 15.2.0
[cmake] -- Detecting CXX compiler ABI info
[cmake] -- Detecting CXX compiler ABI info - done
[cmake] -- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe - skipped
[cmake] -- Detecting CXX compile features
[cmake] -- Detecting CXX compile features - done
[cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
[cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
[cmake] -- Found Threads: TRUE
[cmake] -- Performing Test HAVE_STDATOMIC
[cmake] -- Performing Test HAVE_STDATOMIC - Success
[cmake] -- Found WrapAtomic: TRUE
[cmake] CMake Warning (dev) at C:/qt6/share/Qt6Core/Qt6CoreMacros.cmake:3411 (message):
[cmake] Qt policy QTP0001 is not set: ':/qt/qml/' is the default resource prefix
[cmake] for QML modules. Check https://doc.qt.io/qt-6/qt-cmake-policy-qtp0001.html
[cmake] for policy details. Use the qt_policy command to set the policy and
[cmake] suppress this warning.
[cmake]
[cmake] Call Stack (most recent call first):
[cmake] C:/qt6/share/Qt6Qml/Qt6QmlMacros.cmake:719 (__qt_internal_setup_policy)
[cmake] C:/qt6/share/Qt6Qml/Qt6QmlMacros.cmake:1254 (qt6_add_qml_module)
[cmake] CMakeLists.txt:15 (qt_add_qml_module)
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
[cmake]
[cmake] -- Configuring done (36.4s)
[cmake] -- Generating done (1.4s)
[cmake] -- Build files have been written to: C:/projects/testqt1/buildВыберем пункт Build и нажмем на кнопку сборки:
![]()
Будет запущена сборка проекта, во вкладке Output мы увидим:
[main] Building folder: c:/projects/testqt1/build
[build] Starting build
[proc] Executing command: chcp
[proc] Executing command: C:\msys64\mingw64\bin\cmake.EXE --build c:/projects/testqt1/build --config Debug --target all --
[build] [3/19 5% :: 0.356] Copying apptestqt1 qml resources into build dir
[build] [3/19 10% :: 0.358] Copying apptestqt1 qml sources into build dir
[build] [3/19 15% :: 0.940] Running qmlimportscanner for apptestqt1
[build] [4/19 21% :: 1.623] Automatic MOC and UIC for target apptestqt1
[build] [8/19 26% :: 2.111] Running rcc for resource qmake_testqt1
[build] [8/19 31% :: 2.134] Generating .rcc/qmlcache/apptestqt1_qmlcache_loader.cpp
[build] [8/19 36% :: 2.137] Running rcc for resource apptestqt1_raw_qml_0
[build] [8/19 42% :: 2.443] Running AUTOMOC file extraction for target apptestqt1
[build] [9/19 47% :: 2.654] Running moc --collect-json for target apptestqt1
[build] [10/19 52% :: 3.823] Automatic QML type registration for target apptestqt1
[build] [11/19 57% :: 4.725] Generating .rcc/qmlcache/apptestqt1_Main_qml.cpp, .rcc/qmlcache/apptestqt1_Main_qml.cpp.aotstats
[build] [18/19 63% :: 5.288] Building CXX object CMakeFiles/apptestqt1.dir/build/.qt/rcc/qrc_apptestqt1_raw_qml_0.cpp.obj
[build] [18/19 68% :: 5.418] Building CXX object CMakeFiles/apptestqt1.dir/apptestqt1_autogen/mocs_compilation.cpp.obj
[build] [18/19 73% :: 5.465] Building CXX object CMakeFiles/apptestqt1.dir/build/.qt/rcc/qrc_qmake_testqt1.cpp.obj
[build] [18/19 78% :: 17.189] Building CXX object CMakeFiles/apptestqt1.dir/apptestqt1_qmltyperegistrations.cpp.obj
[build] [18/19 84% :: 17.398] Building CXX object CMakeFiles/apptestqt1.dir/build/.rcc/qmlcache/apptestqt1_Main_qml.cpp.obj
[build] [18/19 89% :: 17.890] Building CXX object CMakeFiles/apptestqt1.dir/main.cpp.obj
[build] [18/19 94% :: 19.423] Building CXX object CMakeFiles/apptestqt1.dir/build/.rcc/qmlcache/apptestqt1_qmlcache_loader.cpp.obj
[build] [19/19 100% :: 20.763] Linking CXX executable apptestqt1.exe
[driver] Build completed: 00:00:21.125
[build] Build finished with exit code 0Строка
[build] Build finished with exit code 0Означает что сборка завершилась успешно.
Запустим проект, выберем пункт Launch и нажмём на кнопку запуска в виде треугольника:
Выберем apptestqt1
И откроется окно нашей запущенной программы:
Мы успешно завершили базовую настройку VSCode для работы и сборки проектов Qt6.
В следующей статье мы рассмотрим настройку VSCode для запуска проектов Qt6 в режиме отладки.
Заключение
Сегодня мы рассмотрели настройку VSCode для работы и сборки проектов Qt6:
Перенесли собранный Qt6 на другой ПК;
Установили GCC, CMake, Ninga с помощью Msys2;
Загрузили и установили VSCode;
Создали папку для проектов;
Создали профиль VSCode для Qt6;
Установили расширения необходимые для работы с Qt6;
Проверили доступность CMake и Ninja из консоли VSCode;
Скопировали утилиту для создания пустых проектов в папку Qt6;
Создали пустой проект Qt Quick;
Открыли проект в VSCode;
Активировали для него профиль Qt6;
Собрали и запустили проект из VSCode.
Добавить комментарий