一. 内容简介
vsCode+cmake+ninja+qt6环境搭建(包含例子代码)及问题处理。
代码以及安装包链接:
通过网盘分享的文件:vsCode+cmake+mingw+ninja+qt6环境搭建(包含例子代码)及问题处理
链接: https://pan.baidu.com/s/1-_yMAsYfYmNzcCzHiOwb8Q?pwd=8888 提取码: 8888
二. 软件环境
2.1 vsCode
2.2 cmake
2.3 mingw
2.4 ninja
2.5 qt6
三.主要流程
3.1 软件安装
3.2 软件介绍
3.3 软件运行
3.4 问题处理
四.具体步骤
4.1 软件安装
CMake
就随便下载安装就可以了(网盘里面也有),插件如下(日积月累装的,具体都是什么作用不清楚):

Code Runner
Better C++ Syntax
C/C++
C/C++ Extension Pack
C/C++ Themes
Makefile Tools
cmake
用的是cmake-4.1.1-windows-x86_64.msi,直接安装网盘的安装包,
mingw,ninja,qt6
都是用qt安装的,qt安装的6.8,ninja只有一个,mingw和qt6.8匹配就行,直接安装网盘的安装包,
// cmd(管理员运行),进入到对应的文件的,执行下面的,安装就行
qt-online-installer-windows-x64-online --mirror https://mirrors.ustc.edu.cn/qtproject
// 这个用于后面增加或者去掉组件
MaintenanceTool.exe --mirror https://mirror.nju.edu.cn/qt
4.2 软件介绍
软件结构基本就这样,
mingw_qt6/
├── CMakeLists.txt # 根CMake配置
├── src/ # 主程序源代码
│ ├── main.cpp
│ ├── MainWindow/
│ │ ├── MainWindow.cpp
│ │ ├── MainWindow.h
│ │ └── MainWindow.ui
│ ├── Widgets/ # 自定义控件
│ │ ├── CustomButton.cpp
│ │ └── CustomButton.h
│ └── Utils/ # 工具类
│ ├── Logger.cpp
│ └── Logger.h
├── include/ # 公共头文件(如果需要)
│ └── CommonDefines.h
├── ui/ # 纯UI文件(可选,如果喜欢分离)
│ ├── SettingsDialog.ui
│ └── AboutDialog.ui
├── resources/ # 资源文件
│ ├── images/
│ │ ├── app_icon.png
│ │ └── toolbar/
│ ├── styles/
│ │ └── main.qss
│ └── translations/
│ ├── zh_CN.ts
│ └── en_US.ts
├── tests/ # 测试代码
│ ├── unit/
│ │ ├── TestMainWindow.cpp
│ │ └── CMakeLists.txt
│ └── integration/
├── third_party/ # 第三方库
│ └── CMakeLists.txt
├── docs/ # 文档
│ ├── README.md
│ └── design/
├── scripts/ # 实用脚本
│ ├── setup_env.sh
│ └── deploy.py
├── build/ # 构建输出(不提交到git)
├── .vscode/ # VSCode配置
│ ├── settings.json
│ ├── tasks.json
│ └── launch.json
└── .gitignore
4.3 软件运行
下载代码,使用vscode打开,里面的CMakePresets.json,tasks.json,launch.json,c_cpp_properties.json都是配置好的,需要按自己的的配置改一下。

CMakePresets.json
// CMakePresets.json
// 按着自己的位置给,CMAKE_C_COMPILER,CMAKE_CXX_COMPILER,CMAKE_MAKE_PROGRAM,Qt6_DIR位置都替换一下
{
"version": 3,
"configurePresets": [
{
"name": "debug_Ninja",
"displayName": "Debug Build",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_C_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/gcc.exe",
"CMAKE_CXX_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/g++.exe",
"CMAKE_MAKE_PROGRAM": "D:/Qt/Tools/Ninja/ninja.exe",
"SHOW_CONSOLE":true,
"Qt6_DIR": "D:/Qt/6.8.3/mingw_64/lib/cmake/Qt6"
}
},
{
"name": "release_Ninja",
"displayName": "Release Build",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_C_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/gcc.exe",
"CMAKE_CXX_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/g++.exe",
"CMAKE_MAKE_PROGRAM": "D:/Qt/Tools/Ninja/ninja.exe",
"SHOW_CONSOLE":false,
"Qt6_DIR": "D:/Qt/6.8.3/mingw_64/lib/cmake/Qt6"
}
}
]
}
task.json
// task.json 直接用就行,
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cmake-configure-debug",
"command": "cmake",
"args": [
"--preset",
"debug_Ninja"
]
},
{
"type": "shell",
"label": "cmake-configure-release",
"command": "cmake",
"args": [
"--preset",
"release_Ninja"
]
},
{
"label": "ninja-build-debug",
"group": {
"kind": "build",
"isDefault": false
},
"command": "ninja",
"args": [
"-C",
"${workspaceFolder}/build/debug",
"-j0"
]
},
{
"label": "ninja-build-release",
"command": "ninja",
"args": [
"-C",
"${workspaceFolder}/build/release",
"-j0"
]
},
{
"label": "Build Debug",
"dependsOrder": "sequence",
"dependsOn": [
"cmake-configure-debug",
"ninja-build-debug"
]
},
{
"label": "Build Release",
"dependsOrder": "sequence",
"dependsOn": [
"cmake-configure-release",
"ninja-build-release"
]
},
{
"label": "Clean Debug",
"command": "ninja",
"args": [
"-C",
"${workspaceFolder}/build/debug",
"clean"
]
},
{
"label": "Clean Release",
"command": "ninja",
"args": [
"-C",
"${workspaceFolder}/build/release",
"clean"
]
},
// {
// "type": "cppbuild",
// "label": "C/C++: g++.exe 生成活动文件",
// "command": "D:/Qt5.12.11/Tools/mingw730_64/bin/g++.exe",
// "args": [
// "-fdiagnostics-color=always",
// "-g",
// "${file}",
// "-o",
// "${fileDirname}\\${fileBasenameNoExtension}.exe"
// ],
// "options": {
// "cwd": "${workspaceFolder}"
// },
// "problemMatcher": [
// "$gcc"
// ],
// "group": {
// "kind": "build",
// "isDefault": false
// },
// "detail": "调试器生成的任务。"
// },
{
"label": "Super Fast Debug Build & Run",
"type": "shell",
// "command": "cmake --preset debug_Ninja && ninja -C ${workspaceFolder}/build/debug -j0 && ${workspaceFolder}/build/debug/signbrain",
"command": "ninja -C ${workspaceFolder}/build/debug -j4 && ${workspaceFolder}/build/debug/signbrain",
"options": {
"shell": {
"executable": "cmd.exe",
"args": ["/c"]
}
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
},
]
}
launch.json
// launch.json,miDebuggerPath的值要替换一下,用来调试的
{
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/debug/SignBrain.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "Build Debug",
"miDebuggerPath": "D:/Qt/Tools/mingw1310_64/bin/gdb.exe"
}
]
}
// c_cpp_properties.json,对应的值要替换一下,给ide防止显示错误的
// c_cpp_properties.json - 代码提示标准
// 只影响VS Code的IntelliSense(代码补全、错误提示、跳转定义)
// 告诉VS Code:"请按照这些标准来显示代码提示"
// 如果配置错误,只会影响编辑体验,不影响实际编译
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
// Qt5 核心路径
"D:/Qt5.12.11/5.12.11/mingw73_64/include",
"D:/Qt5.12.11/5.12.11/mingw73_64/include/QtCore",
"D:/Qt5.12.11/5.12.11/mingw73_64/include/QtGui",
"D:/Qt5.12.11/5.12.11/mingw73_64/include/QtWidgets",
"D:/Qt5.12.11/5.12.11/mingw73_64/include/QtPrintSupport",
// mkspecs 对 Q_OBJECT 宏解析有帮助
"D:/Qt5.12.11/5.12.11/mingw73_64/mkspecs/win32-g++",
// CMake 输出里 Qt5Core 包含目录
"D:/Qt5.12.11/5.12.11/mingw73_64/include/;D:/Qt5.12.11/5.12.11/mingw73_64/include/QtCore"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
对应的文件调整完了以后,
先构建,构建进去CMakeLists.txt以后,ctrl+s,会自动构建,如果提示不知道怎么构建,ctrl+shift+p,选一下构建配置即可

编译是通过ctrl+shift+b,调用task.json的默认任务构建
f5是调试,ctrl+f5是调试但是不过断点,f5这一套通过launch.json,调用里面写的task来执行构建编译,然后调试的
不调试的话,ctrl+shift+b运行就行,还要使用windeployqt.exe signbrain.exe导入qt6的相关库即可,

3.4 问题处理
第一个问题,就是f5执行没反应,因为我装了这个,就快捷键冲突了,把他禁用得了,用的时候再打开

1234

被折叠的 条评论
为什么被折叠?



