Win11 + VsCode1.93.0 + Qt5.15.2 + CMake3.28.0-rc3
Qt Configure(@vector-wlc)
必须
Qt Extension Pack(@Qt Group)
,不是必要但可提升使用体验,Qt UI
具有点击.ui
文件启动Qt Widgets Designer
。
Qt C++ Extension Pack(@Qt Group)
,该扩展包包含了Qt Extension Pack(@Qt Group)
,同时增加了C/C++(@Microsoft)
,CMake(@twxs)
,CMake Tools(@Microsoft)
,对于不想手动一个一个安装的可以推荐。若想使用CMake这个三个都是必须的。
对于C/C++推荐装一个C/C++ Extension Pack(@Microsoft)
Qt Configure: Mingw Path
,请设置MinGw
的bin
之前那个路径,请根据自身环境实际情况进行配置
D:\Programs\Qt\5.15.2\mingw81_64
Qt Configure: Qt Dir
,请根据自身环境实际情况设置Qt
的安装路径
D:\Programs\Qt
Qt Configure: Vcvarsall Path
,设置VS
环境变量脚本路径,在使用Msvc
编译器时会用到,同样请根据自身环境实际情况进行配置
D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
Ctrl + Shift + P
通过QtConfigure
插件新建工程
输入项目名称并确认
选择Qt的构建套件,这些都是Qt的构建套件包含MinGw和Msvc,不同的Qt版本略有不同,请结合自身实际情况进行选择
选择构建工具
选择是否带UI文件
选择完成过后将自动创建项目工程
.pro
文件是Qt
的项目文件,src
是自动生成的源文件.vscode
中是VsCode
工程工作时必要的配置信息,scripts
中是项目构建生成时的脚本,VsCode
编译器工程本质上是通过命令行执行这些脚本调用qmake
进行工程编译和生成的。若想要编译运行
.cpp
文件,后会在右上角出现运行符号,可直接点击也可下拉选择第二种 Ctrl + Shift + P
输入run
,选择运行生成任务
debug
或者release
若是创建工程时选择MinGw
作为构建套件,QMake
作为构建工具则需要做一些修改
修改构建脚本 ./scripts/build_debug.bat
mingw32-make
的路径是在D:\Programs\Qt\5.15.2\mingw81_64
下面,这可能是由于我这里是Qt5.15.2
,它不在这个路径下而是D:\Programs\Qt\Tools\mingw810_64
,读者请根据自身实际情况进行修改。@echo off
title qmake and nmake build prompt
@REM 修改mingw32-make的路径
@REM set MINGW_PATH=D:\Programs\Qt\5.15.2\mingw81_64
set MINGW_PATH=D:\Programs\Qt\Tools\mingw810_64
set QT_DIR=D:\Programs\Qt\5.15.2\mingw81_64
set BUILD_DIR=%cd%\build
set PRO_DIR=%cd%
set PATH=%MINGW_PATH%\bin;%QT_DIR%\bin;%PATH%
if not exist %BUILD_DIR% (
md %BUILD_DIR%
)
cd build
qmake.exe %PRO_DIR%\VsCodeQMakeMinGw.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=console"
if exist %BUILD_DIR%\debug\VsCodeQMakeMinGw.exe del %BUILD_DIR%\debug\VsCodeQMakeMinGw.exe
@REM D:\Programs\Qt\Tools\QtCreator\bin\jom.exe -j4
%MINGW_PATH%\bin\mingw32-make -f Makefile.Debug
cd debug
if not exist %BUILD_DIR%\debug\Qt5Core.dll (
windeployqt VsCodeQMakeMinGw.exe
)
修改运行配置文件./.vscode/launch.json
同样因为Qt
不同版本的gbd.exe
的调试器路径可能不同这样也需要做出一定修改否则会报错
修改gdb.exe
路径即miDebuggerPath
参数
{"version":"0.2.0","configurations":[{"name":"debug","type":"cppdbg","request":"launch","program":"${workspaceRoot}/build/debug/VsCodeQMakeMinGw.exe","args":[],"stopAtEntry":false,"cwd":"${workspaceRoot}","environment":[],"externalConsole":false,"MIMode":"gdb",// 修改gdb路径// "miDebuggerPath": "D:/Programs/Qt/5.15.2/mingw81_64/bin/gdb.exe","miDebuggerPath":"D:/Programs/Qt/Tools/mingw810_64/bin/gdb.exe","setupCommands":[{"description":"Enable pretty-printing for gdb","text":"-enable-pretty-printing","ignoreFailures":true}],"preLaunchTask":"debug"}]}
这时候编译运行应该能直接弹出Qt
窗口了
VsCode1.93.0 + Qt5.15.2 + Msvc2015
创建工程时选择Msvc
作为构建套件,QMake
作为构建工具时唯一需要注意的就是设置好 Qt Configure: Vcvarsall Path
路径,在扩展配置中有说明。
若是配置没有问题直接编译运行应该就能看到弹出的Qt
窗口了。
VsCode1.93.0 + Qt5.15.2 + CMake3.28.0-rc3 + mingw81_64
在创建工程时选择MinGw
作为构建套件,选择CMake
作为构建工具。
构建生成运行
第一次运行时需要选择构建器
这里请选择QtBuild
同时需要修改 ./.vscode/launch.json
文件,这样也是修改dgb
的路径,请读者根据自身情况就行修改。
{"version":"0.2.0","configurations":[{"name":"QtBuild","type":"cppdbg","request":"launch","program":"${command:cmake.launchTargetPath}","args":[],"stopAtEntry":false,"cwd":"${workspaceRoot}","environment":[{"name":"PATH","value":"D:/Programs/Qt/5.15.2/mingw81_64/bin"}],"externalConsole":false,// "miDebuggerPath": "D:/Programs/Qt/5.15.2/mingw81_64/bin/gdb.exe""miDebuggerPath":"D:/Programs/Qt/Tools/mingw810_64/bin/gdb.exe"}]}
对于CMake工程这里还有一种构建运行方式,且好像不用修改 launch.json
文件。
项目运行效果
VsCode1.93.0 + Qt5.15.2 + CMake3.28.0-rc3 + Msvc2015
在创建工程时选择Msvc
作为构建套件,选择CMake
作为构建工具。
只有第一次运行时需要选择对应的编译构建器,其它都与VsCode+CMake+MinGw一样。
构建生成运行
第一次运行时需要选择构建器
这里请选择QtBuild
运行效果如下
Qt5.15.2 + QtCreator12.0.1 + VsCode1.93.0 + mingw81_64
特别说明:QtCreator和VsCode扩展(Qt Configure)自动创建的工程有些不同,但是都会依赖于pro文件,QMake是基于进行编译生成的
使用QtCreator创建一个以MinGw
为构建套件,QMake
为构建工具的工程,并将其转换为VsCode
工程,并在VsCode
中进行编辑编译并运行。(这里不再赘述QtCreator
工程的创建)
这里进行说明一下,Qt
工程文件是.pro
文件,但VsCode并没有明确的工程文件只有工程的配置文件,通过我们前面的VsCode+QMake+MinGw 可以知道其实VsCode
只是将工程编译整合到脚本命令中了,编译时依然会使用.pro
工程。
所以我们直接将VsCode+QMake+MinGw 创建的.vscode
和scripts
文件夹拷贝到QtCreator
创建的工程,并用VsCode
打开。
先修改./scripts/build_debug.bat
脚本
bat
脚本有时候会因为编码问题导致运行不正常,可将其转换为ASCII
编码,VsCode
默认保存为UTF-8
。@echo off
title qmake and nmake build prompt
@REM set MINGW_PATH=D:\Programs\Qt\5.15.2\mingw81_64
set MINGW_PATH=D:\Programs\Qt\Tools\mingw810_64
set QT_DIR=D:\Programs\Qt\5.15.2\mingw81_64
@REM set BUILD_DIR=%cd%\build
set BUILD_DIR=%cd%\..\build-QtCreatorQMakeMinGw-Desktop_Qt_5_15_2_MinGW_64_bit
set PRO_DIR=%cd%
set PATH=%MINGW_PATH%\bin;%QT_DIR%\bin;%PATH%
if not exist %BUILD_DIR% (
md %BUILD_DIR%
)
cd %BUILD_DIR%
qmake.exe %PRO_DIR%\QtCreatorQMakeMinGw.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=console"
if exist %BUILD_DIR%\debug\QtCreatorQMakeMinGw.exe del %BUILD_DIR%\debug\QtCreatorQMakeMinGw.exe
@REM D:\Programs\Qt\Tools\QtCreator\bin\jom.exe -j4
%MINGW_PATH%\bin\mingw32-make -f Makefile.Debug
cd debug
if not exist %BUILD_DIR%\debug\Qt5Core.dll (
windeployqt %BUILD_DIR%\debug\QtCreatorQMakeMinGw.exe
)
再修改 ./.vscode/launch.json
文件,设置运行文件路径
{"version":"0.2.0","configurations":[{"name":"debug","type":"cppdbg","request":"launch",// "program": "${workspaceRoot}/build/debug/VsCodeQMakeMinGw.exe","program":"${workspaceRoot}/../build-QtCreatorQMakeMinGw-Desktop_Qt_5_15_2_MinGW_64_bit/debug/QtCreatorQMakeMinGw.exe","args":[],"stopAtEntry":false,"cwd":"${workspaceRoot}","environment":[],"externalConsole":false,"MIMode":"gdb",// 修改gdb路径// "miDebuggerPath": "D:/Programs/Qt/5.15.2/mingw81_64/bin/gdb.exe","miDebuggerPath":"D:/Programs/Qt/Tools/mingw810_64/bin/gdb.exe","setupCommands":[{"description":"Enable pretty-printing for gdb","text":"-enable-pretty-printing","ignoreFailures":true}],"preLaunchTask":"debug"}]}
特别说明:Qt
的.pro
工程使用的是影子构建,所以这里是build-QtCreatorQMakeMinGw-Desktop_Qt_5_15_2_MinGW_64_bit
,若是自定义构建输出路径,以及中间生成参数请,根据实际路径做修改。
项目构建编译运行参考,运行效果如下
Qt5.15.2 + QtCreator12.0.1 + VsCode1.93.0 + msvc2015
使用QtCreator
创建一个以Msvc
为构建套件,QMake
为构建工具的工程,并将其转换为VsCode
工程,并在VsCode
中进行编辑编译并运行。(这里不再赘述QtCreator
工程的创建)
在QtCreator+QMake+MinGw->VsCode我们已经说明QtCreator
到VsCode
操作的基本原理,就不在进行说明了。
同样我们拷贝VsCode+QMake+Msvc工程创建的.vscode
和scripts
文件夹到QtCreator
项目中。
修改./scripts/build_debug.bat
脚本
@echo off
set QT_DIR=D:\Programs\Qt\5.15.2\msvc2015_64
set SRC_DIR=%cd%
@REM set BUILD_DIR=%cd%\build
set BUILD_DIR=%cd%\..\build-QtCreatorQMakeMsvc-Desktop_Qt_5_15_2_MSVC2015_64bit
if not exist %QT_DIR% exit
if not exist %SRC_DIR% exit
if not exist %BUILD_DIR% md %BUILD_DIR%
cd %BUILD_DIR%
call "D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
%QT_DIR%\bin\qmake.exe %SRC_DIR%\QtCreatorQMakeMsvc.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=console"
if exist %BUILD_DIR%\debug\QtCreatorQMakeMsvc.exe del %BUILD_DIR%\debug\QtCreatorQMakeMsvc.exe
nmake Debug
if not exist %BUILD_DIR%\debug\Qt5Cored.dll (
%QT_DIR%\bin\windeployqt.exe %BUILD_DIR%\debug\QtCreatorQMakeMsvc.exe
)
修改 ./.vscode/launch.json
文件,设置运行文件路径
{"version":"0.2.0","configurations":[{"name":"Launch","type":"cppvsdbg","request":"launch",// "program": "${workspaceRoot}/build/debug/VsCodeQMakeMsvc.exe","program":"${workspaceRoot}/../build-QtCreatorQMakeMsvc-Desktop_Qt_5_15_2_MSVC2015_64bit/debug/QtCreatorQMakeMsvc.exe","args":[],"stopAtEntry":false,"cwd":"${workspaceRoot}","environment":[],"console":"integratedTerminal","preLaunchTask":"debug"}]}
项目构建编译运行参考,运行效果
Qt5.15.2 + QtCreator12.0.1 + VsCode1.93.0 + CMake3.28.0-rc3 + mingw81_64
使用QtCreator创建以MinGw为构建套件,CMake为构建工具的项目,并使用VsCode打开
运行
选择对应编译器(第一次时选择),会自动编译生成项目。
再次点击运行,会选择启动目标,一般是第一个。(这里没有截到图可参考QtCreator+CMake+Msvc->VsCode)
运行效果
Qt5.15.2 + QtCreator12.0.1 + VsCode1.93.0 + CMake3.28.0-rc3 + msvc2015
使用QtCreator创建以Msvc为构建套件,CMake为构建工具的项目,并使用VsCode打开
点击运行,选择对应编译器(第一次时选择),会自动编译生成项目。
再次点击运行,会选择启动目标,一般是第一个。
运行效果
@echo off
title qmake and nmake build prompt
set TARGET_NAME=VsCodeQMake
set BUILD_NAME=debug
set IS_MSVC=1
if %IS_MSVC%==1 ( set QT_DIR=D:\Programs\Qt\5.15.2\msvc2015_64
) else ( set QT_DIR=D:\Programs\Qt\5.15.2\mingw81_64
)
set PRO_DIR=%cd%
for %%A in ("%QT_DIR%") do (set "QT_KIT_NAME=%%~nxA")
for %%A in ("%QT_DIR%\..") do (set "QT_VERSION=%%~nxA")
set "QT_VERSION=%QT_VERSION:.=_%"
echo %QT_KIT_NAME%| findstr /i "msvc">nul
if errorlevel 1 ( set QT_KIT_STR=MinGW
set IS_MSVC=0
) else ( set QT_KIT_STR=%QT_KIT_NAME:~0,-3%
set IS_MSVC=1
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set QT_KIT_STR=%%QT_KIT_STR:%%i=%%i%%
)
echo %QT_KIT_NAME%| findstr /i "64" >nul
if errorlevel 1 ( set BIT_STR=32bit) else ( set BIT_STR=64bit)
set QT_KIT_STR=Desktop_Qt_%QT_VERSION%_%QT_KIT_STR%_%BIT_STR%
set BUILD_DIR=%PRO_DIR%/../build-%TARGET_NAME%-%QT_KIT_STR%
set FIRST_CHAR=%BUILD_NAME:~0,1%
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set FIRST_CHAR=%%FIRST_CHAR:%%i=%%i%%
set BUILD_NAME_U=%FIRST_CHAR%%BUILD_NAME:~1%
if not exist "%QT_DIR%" exit
if not exist "%PRO_DIR%" exit
if not exist "%BUILD_DIR%" (
md "%BUILD_DIR%"
)
if %BUILD_NAME%=="debug"( set CONFIG_STR="CONFIG+=%BUILD_NAME%" "CONFIG+=console") else(set CONFIG_STR="CONFIG+=%BUILD_NAME%")
cd "%BUILD_DIR%"
if %IS_MSVC%==1 ( goto build_msvc) else ( goto build_mingw)
:build_msvc
call "D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
%QT_DIR%\bin\qmake.exe %PRO_DIR%\%TARGET_NAME%.pro -spec win32-msvc %CONFIG_STR%
set TARGET_NAME_ALL=%BUILD_DIR%\%BUILD_NAME%\%TARGET_NAME%.exe
if exist "%TARGET_NAME_ALL%" del "%TARGET_NAME_ALL%"
nmake %BUILD_NAME_U%
goto end
:build_mingw
set MINGW_PATH=%QT_DIR%\..\..\Tools\%QT_KIT_NAME:~0,7%0%QT_KIT_NAME:~-3%
set PATH=%MINGW_PATH%\bin;%QT_DIR%\bin;%PATH%
%QT_DIR%\bin\qmake.exe %PRO_DIR%\%TARGET_NAME%.pro -spec win32-g++ %CONFIG_STR%
set TARGET_NAME_ALL=%BUILD_DIR%\%BUILD_NAME%\%TARGET_NAME%.exe
if exist "%TARGET_NAME_ALL%" del "%TARGET_NAME_ALL%"
@REM D:\Programs\Qt\Tools\QtCreator\bin\jom.exe -j4
%MINGW_PATH%\bin\mingw32-make -f Makefile.%BUILD_NAME_U%
goto end
:end
if not exist %BUILD_DIR%\%BUILD_NAME%\Qt5Cored.dll (
%QT_DIR%\bin\windeployqt.exe "%TARGET_NAME_ALL%"
)
提示:请勿发布广告垃圾评论,否则封号处理!!