c++雪花屏(vsCode+cmake+mingw+ninja)

一. 内容简介

c++雪花屏(vsCode+cmake+mingw+ninja),代码来自于赵老师,我改了一下编译环境

【B站最好的OpenGL图形学-全家桶(四门课程)系统介绍】 https://www.bilibili.com/video/BV1AE421P7kK/?share_source=copy_web\&vd_source=7b377d4a833a67013df5f95f32b390f8

代码以及安装包链接:

通过网盘分享的文件:c++雪花屏(vsCode+cmake+mingw+ninja)

链接: https://pan.baidu.com/s/1R2B6PTHQmqH9MFkNRLEODA?pwd=8888 提取码: 8888

--来自百度网盘超级会员v8的分享

二. 软件环境

2.1 vsCode

2.2 cmake

2.3 mingw

2.4 ninja

三.主要流程

3.1 软件安装

3.2 软件介绍

3.3 软件运行

3.4 问题处理

四.具体步骤

4.1 软件安装

CMake

就随便下载安装就可以了(网盘里面也有),插件如下(日积月累装的,具体都是什么作用不清楚):

json 复制代码
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匹配就行,直接安装网盘的安装包,

json 复制代码
// 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 软件介绍

先讲一下改的地方,然后介绍一下软件的实现思路,

c++ 复制代码
// 这个代码其实只在msvc有效,就相当于在编译命令后面添加了这些命令,mingw没办法用
#pragma comment(linker, "/subsystem:console /entry:wWinMainCRTStartup" )

// mingw在cmakelist中添加这个就好了
target_link_options(softRenderer PRIVATE -municode)

软件思路

c++ 复制代码
// 创建窗体,
// mhDC为显示的dc,mCanvasDC为空的dc,mhBmp和mCanvasDC绑定,作为画板,mCanvasBuffer是指向画板的指针
app->initApplication(hInstance,800, 600)
// mFrameBuffer就是和mCanvasBuffer绑定了
// 然后使用通过mFrameBuffer去修改mhBmp里面的颜色,可以完成整个画板颜色的替换
uint32_t pixelPos = y * mFrameBuffer->mWidth + x; // �����һ�м���x��ƫ����
mFrameBuffer->mColorBuffer[pixelPos] = color;
// 然后把mCanvasDC的的数据拷贝mhDC,就完成了页面的刷新
BitBlt(mhDC, 0, 0, mWidth, mHeight, mCanvasDC, 0, 0, SRCCOPY);

4.3 软件运行

下载代码,使用vscode打开,里面的CMakePresets.json,tasks.json,launch.json,c_cpp_properties.json都是配置好的,需要按自己的的配置改一下。

CMakePresets.json

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"
      }
    }
  ]
}

对应的文件调整完了以后,

先构建,构建进去CMakeLists.txt以后,ctrl+s,会自动构建,如果提示不知道怎么构建,ctrl+shift+p,选一下构建配置即可,然后ctrl+shift+b运行就行,调试的话可以参考我之前的博客

vsCode+cmake+mingw+ninja+qt6环境搭建(包含例子代码)及问题处理

https://blog.csdn.net/qq_45179361/article/details/155495028


相关推荐
Hua-Jay5 分钟前
OpenCV联合C++/Qt 学习笔记(二十四)----差值法检测移动物体、稠密光流法跟踪移动物体及稀疏光流法跟踪移动物体
c++·笔记·qt·opencv·学习·计算机视觉
大大杰哥8 分钟前
从 Volatile 到 ThreadLocal:Java 线程安全机制备忘
java·开发语言·jvm
崇山峻岭之间17 分钟前
matlab绘制复杂曲线
开发语言·matlab
skywalk816318 分钟前
中文编程语言的开创性语法,言律:一门以汉语为思维内核的原生中文编程语言
开发语言·编程
郭老二20 分钟前
【C++】RPC:远程程序调用
c++·rpc
承渊政道21 分钟前
【贪心算法】(经典实战应用解析(六):整数替换、俄罗斯套娃信封问题、可被三整除的最⼤和、距离相等的条形码、重构字符串)
c++·算法·leetcode·贪心算法·排序算法·动态规划·哈希算法
宠..21 分钟前
VS Code SSH 远程连接 Ubuntu 并实现快速运行(C/C++示例)
java·运维·c语言·开发语言·c++·ubuntu·ssh
Omics Pro22 分钟前
免费!糖蛋白质组学数据分析
开发语言·深度学习·数据挖掘·数据分析·r语言·excel·知识图谱
枫叶林FYL24 分钟前
【强化学习】2 大规模并行强化学习中的耦合策略优化:受控多样性驱动的样本高效探索
开发语言·php
chao18984426 分钟前
基于MATLAB的音频信号AM调制与解调实现
开发语言·matlab·音视频