当前位置: 首页 > news >正文

Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory

安装C++

简介

Windows 版的 GCC 有三个选择:

  • Cygwin
  • MinGW
  • mingw-w64

Cygwin、MinGW 和 mingw-w64 都是在 Windows 操作系统上运行的工具集,用于在 Windows 环境下进行开发和编译。

Cygwin 是一个在 Windows 上运行的开源项目,旨在提供类Unix环境的兼容性。它提供了一套 GNU 和开源工具,包括编译器(如 gcc)、Shell、库等。通过 Cygwin,开发者可以在 Windows 上编译和运行许多 Unix 或 Linux 上的应用程序。Cygwin 提供了对 POSIX 系统调用和 Shell 环境的支持,并提供了一套基于 Cygwin 的 DLL(动态链接库)来实现与 Windows 系统的交互。

MinGW(Minimalist GNU for Windows)是一个轻量级的开发环境,旨在提供 GNU 工具链(如 gcc、g++ 等)在Windows上的运行。MinGW 提供了一组 Windows 本地 API 的头文件和库,使开发者能够使用标准的 GCC 编译器在 Windows 上编译和运行 C 和 C++ 代码。与 Cygwin 不同,MinGW 的目标是直接使用 Windows 本地 API,而不是提供类 Unix 环境的兼容性。

mingw-w64 是 MinGW 的一个分支,它专注于支持 64 位 Windows 系统。与传统的 MinGW 只支持 32 位编译器不同,mingw-w64 提供了 64 位的 Windows 编译器和开发工具。它支持使用 GCC 编译器生成 64 位 Windows 应用程序,并提供了对 Windows API 的头文件和库的支持。mingw-w64 项目也是开源的,旨在提供免费、开放的开发环境。

总之,Cygwin 提供了类 Unix 环境的兼容性,MinGW 和 mingw-w64 则提供了在 Windows 上使用 GCC 编译器进行 C 和 C++ 开发的工具集。其中,mingw-w64 专注于 64 位 Windows 系统的支持。开发者可以根据自己的需求选择适合的工具集来进行 Windows 平台上的开发。

目前,最常用的是 mingw-w64,本文将以 mingw-w64 为例来安装 GCC。

下载

安装软件,最好的下载地方是官网。

我们在 GCC 官网可以找到不同平台版本的官网入口。

GCC, the GNU Compiler Collection- GNU Projecthttps://www.gnu.org/software/gcc/

进入到二进制下载页面可以看到 Windows 平台的三个版本。

点击 mingw-w64 进入 mingw-w64官网下面

mingw-w64 项目提供了很多 Windows 平台的工具包,这里以 w64devkit 为例,安装 C 和 C++ 编译器。大家可以根据自己的需要选择对应的工具。

按照指引,去 Github 下载即可。

安装

将下载的 w64devkit 压缩包解压后,放到任意目录即可。我这里是:D:\C++Develop\w64devkit-1.23.0\w64devkit。

解压后 w64devkit,其目录如下:

配置环境变量

要想在 Windows 命令行能够使用上述工具,需要将 w64devkit 的 bin 目录加入到环境变量 Path 中。

设置入口:开始 > 设置 > 系统 > 系统信息 > 高级系统设置 > 环境变量

将 w64devkit 的 bin 目录添加到用户变量或系统变量 Path,我这里加入到用系统变量 Path 中。如果想只对当前用户生效,需要加入到用户变量。

验证

打开命令行 Windows cmd 或 PowerShell,执行如下命令:

gcc -v

成功输出 gcc 版本信息,表示 gcc 安装成功。

安装CMake

简介

CMake 是一个跨平台的构建系统生成工具,用于辅助软件项目的构建过程,以下是关于它的简介:

功能特点
  • 跨平台性:CMake 可以在多种操作系统上使用,如 Windows、Linux、macOS 等。它能够根据不同平台的特点生成相应的构建文件,使得项目可以在不同平台上以统一的方式进行构建。
  • 简洁高效:使用简单的语法来描述项目的构建规则和依赖关系。通过编写 CMake 脚本,能够清晰地定义源文件、头文件、库文件以及编译选项等项目构建相关的信息。
  • 可扩展性:支持自定义构建规则和模块,方便用户根据项目的特殊需求进行扩展。还可以与其他构建系统或工具集成,如 Ninja、Make 等,以满足不同的构建需求。
工作原理
  • CMake 通过读取项目中的 CMake 脚本(通常命名为 CMakeLists.txt)来了解项目的结构和构建要求。然后,根据目标平台和用户指定的生成器(Generator),生成相应的构建文件,如 Unix 系统上的 Makefile 或 Windows 上的 Visual Studio 项目文件。最后,用户可以使用相应的构建工具根据生成的构建文件来编译和链接项目,生成可执行文件或库文件。
应用场景
  • C/C++ 项目:在 C/C++ 开发中广泛应用,用于管理项目的构建过程,包括源文件的编译、库的链接、头文件的包含路径设置等。例如,OpenCV、Qt 等开源项目都使用 CMake 来管理其跨平台的构建。
  • 其他语言和项目类型:除了 C/C++,CMake 也可以用于其他语言和项目类型,如 Python 项目中用于管理扩展模块的构建,以及一些混合语言项目的构建管理。
基本使用步骤
  • 编写 CMakeLists.txt:在项目目录下创建 CMakeLists.txt 文件,在其中定义项目名称、版本号、源文件列表、头文件目录、链接库等信息。以下是一个简单的示例:
# 指定CMake最低版本要求
cmake_minimum_required(VERSION 3.10)# 项目名称
project(MyProject)# 添加可执行文件
add_executable(MyExecutable main.cpp)
  • 配置项目:在项目目录下创建一个构建目录(通常命名为 build),进入该目录后执行cmake命令,指定项目的源代码目录。例如:cmake..,这一步会根据 CMakeLists.txt 文件生成构建文件。
  • 构建项目:根据生成的构建文件,使用相应的构建工具进行构建。如果生成的是 Makefile,则可以使用make命令进行构建;如果是 Visual Studio 项目文件,则可以在 Visual Studio 中打开项目并进行构建。

下载

去官网下载

Download CMakehttps://cmake.org/download/

使用版本不用太新,也不要太旧,这里我下载了3.26.0版本将作为教程演示。

下载地址:

https://github.com/Kitware/CMake/releases/download/v3.26.0/cmake-3.26.0-windows-x86_64.msihttps://github.com/Kitware/CMake/releases/download/v3.26.0/cmake-3.26.0-windows-x86_64.ziphttps://github.com/Kitware/CMake/releases/download/v3.26.0/cmake-3.26.0-windows-x86_64.msi

安装

将下载的 cmake-3.26.0-windows-x86_64.zip 压缩包解压后,放到任意目录即可。我这里是:D:\C++Develop\cmake-3.26.0-windows-x86_64

解压后 cmake-3.26.0-windows-x86_64,其目录如下:

配置环境变量

要想在 Windows 命令行能够使用上述工具,需要将 cmake-3.26.0-windows-x86_64的 bin 目录加入到环境变量 Path 中。

设置入口:开始 > 设置 > 系统 > 系统信息 > 高级系统设置 > 环境变量

将 cmake 的 bin 目录添加到用户变量或系统变量 Path,我这里加入到用系统变量 Path 中。如果想只对当前用户生效,需要加入到用户变量。

验证

打开命令行 Windows cmd 或 PowerShell,执行如下命令:

cmake --version

 成功输出 cmake 版本信息,表示 cmake安装成功。

安装QT

简介

Qt 是一个跨平台的 C++ 应用程序开发框架,由挪威 Trolltech 公司开发,后被 Digia 公司收购,如今 The Qt Company 负责其维护和进一步开发。它提供了丰富的类库和工具,可帮助开发者快速创建具有图形用户界面(GUI)的应用程序,也可用于开发非 GUI 的程序,如控制台工具和服务器应用。以下为你详细介绍:

主要特点

1. 跨平台性

  • Qt 支持多种操作系统,包括 Windows、Linux、macOS、iOS、Android 等。开发者只需编写一次代码,就可以在不同平台上进行编译和运行,大大提高了开发效率。
  • 例如,一款使用 Qt 开发的办公软件,可以在 Windows 系统上流畅运行,也能无缝移植到 Linux 和 macOS 系统,满足不同用户群体的需求。

2. 丰富的类库

  • 提供了大量的类和函数,涵盖了图形绘制、网络通信、数据库操作、文件处理等各个方面。
  • 以网络通信为例,Qt 的网络模块提供了诸如 QTcpSocket、QTcpServer、QUdpSocket 等类,方便开发者实现 TCP 和 UDP 通信,开发者可以轻松使用这些类搭建一个简单的网络聊天程序。

3. 强大的 GUI 设计能力

  • Qt 拥有可视化的 GUI 设计工具 Qt Designer,通过拖放控件的方式就能快速设计出美观、易用的用户界面。
  • 同时,Qt 支持样式表(QSS),类似于 CSS,开发者可以使用 QSS 对界面的外观进行定制,实现个性化的界面风格。

4. 信号与槽机制

  • 这是 Qt 的核心机制之一,用于对象间的通信。信号是对象发出的事件通知,槽是用于接收信号并执行相应操作的函数。
  • 信号与槽机制使得对象间的耦合度降低,提高了代码的可维护性和可扩展性。比如,当用户点击一个按钮时,按钮会发出 clicked () 信号,开发者可以将这个信号连接到一个自定义的槽函数上,在槽函数中实现点击按钮后的操作,如打开一个新窗口。

5. 良好的文档和社区支持

  • Qt 提供了详细的官方文档,包含了类库的使用说明、示例代码和开发教程等,方便开发者学习和使用。
  • 此外,Qt 拥有庞大的开发者社区,开发者可以在社区中交流经验、分享代码、解决遇到的问题。 
应用领域

1. 桌面应用开发

  • 许多知名的桌面应用程序都是使用 Qt 开发的,如 WPS Office、Skype 等。这些应用程序利用 Qt 的跨平台特性和强大的 GUI 设计能力,为用户提供了一致的使用体验。

2. 嵌入式开发

  • Qt 在嵌入式系统开发中也有广泛的应用,如汽车信息娱乐系统、工业控制界面、智能家居设备等。Qt 的轻量级和高效性使其能够在资源有限的嵌入式设备上稳定运行。

3. 移动应用开发

  • 借助 Qt 的跨平台特性,开发者可以使用同一套代码开发 iOS 和 Android 平台的移动应用。例如,一些地图导航应用、社交应用等都可以使用 Qt 进行开发。

4. 游戏开发

  • Qt 提供了基本的图形绘制和动画功能,可用于开发一些小型游戏。同时,Qt 也可以与其他游戏开发引擎结合使用,为游戏开发提供更多的可能性。
基本使用流程
  1. 安装 Qt 开发环境:从 Qt 官方网站下载适合自己操作系统的 Qt 安装包,安装过程中可以选择需要的 Qt 版本和开发工具。
  2. 创建项目:使用 Qt Creator(Qt 集成开发环境)创建一个新的 Qt 项目,选择项目类型,如 Qt Widgets Application(用于创建桌面 GUI 应用)。
  3. 设计界面:使用 Qt Designer 设计应用程序的用户界面,添加各种控件并设置其属性。
  4. 编写代码:在 Qt Creator 中编写业务逻辑代码,处理信号与槽的连接和各种事件。
  5. 编译和运行:使用 Qt Creator 的编译和运行功能,将代码编译成可执行文件并在目标平台上运行。

下载

Qt 官方下载链接 里面有各个版本的安装包、源码、插件等。

Index of /archive/qthttps://download.qt.io/archive/qt/

我这里以 Qt 的 5.12.10 为例,下载Winodow 版本的安装包

https://download.qt.io/archive/qt/5.12/5.12.10/qt-opensource-windows-x86-5.12.10.exe

 

 安装

首先需要先断开网络,再打开安装包,不断开网络的话会跳转到Qt 的登录界面,如果没有申请账号或者国外网站连接慢,这一步很重要!

断网后双击打开 qt-opensource-windows-x86-5.12.10.exe  安装包,详细步骤如下:

 点取消按钮

然后Next

点击下一步

选择一个安装目录,点击下一步

选择对应的组件,如果用 Qt 进行电脑桌面软件开发选择 MinGW,和 MSVC 组件,以及一些组件,除了安卓的组件。如果想用Qt 做一些安卓方面的开发,可以把安卓组件也勾选上。
在这里,我这里选择安装全部。点击下一步

点击下一步

点击安装

之后就是一段漫长的等待。。。。。。。。。。。。。。。。。。。。

安装完成,点击下一步

点击完成,之后打开软件 

验证

新建一个项目试一下

点击 文件 》新建文件或项目,之后按照默认配置,创建一个桌面版程序,点击 Chose

使用默认的 qmake ,点击下一步

界面类的配置,在这里我使用默认的配置,可以根据需要自定义,点击下一步。

这里可以选 翻译语言,如果软件需要支持多国语言,可以在这里配置,不过一般先选择 none ,如果需要,之后再项目中配置,点击下一步

这一步,选择编译的环境,我这里选择 MinGW 32 编译器 ,点击 下一步

点击完成

 之后就会打开软件了

 双击左栏的.ui 文件就可以进入到UI 的编辑页面,可以在这个界面编辑UI

左下角这里是 Debug 和 Release 模式的切换,以及运行的按钮

点击 运行的按钮,就会显示出来一个软件界面 

之后回到 项目所在的文件夹中,可以看到生成了一个带有 build…的文件夹
Debug模式对应Debug,也就是开发人员调试的模式
Release 模式对应 Release ,也就是软件的发行模式,别人要使用你开发的软件,就在这个模式下生成就可以了。 

这个就是我们刚才编译好的软件

如果双击打开这个软件,是打不开的,因为我们在Debug模式,而且会报错没有一些库的支持,但是我们可以回到这里去调试软件,至于这个软件怎么可以打开,后面再说。

到这里,Qt 的安装就完成了! 

安装Visual Studio

下载

首先,访问Visual Studio官网:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器

在官网页面中,根据您的需求选择适合的版本:社区版(免费)、专业版、企业版。对于个人用户,社区版通常已经足够使用。

选择好版本后,点击下载。下载完成后,您将获得一个安装包:VisualStudioSetup.exe。

安装 

双击进入安装,点击继续

安装程序启动后,根据您的开发需求,选择合适的工作负载(例如:使用C++的桌面开发、通用Windows平台开发、Visual Studio扩展开发等)。这一步是可选的,您可以根据需要随时添加组件。

选择自己需要的组件,选择组件这一步是可选的,您可以根据需要后边随时添加组件。

为了不占用C盘空间,您可以修改安装位置,建议将Visual Studio安装在非系统盘。

选择好组件和路径后,点击“安装”按钮,接下来会进入下载和安装过程,这可能需要一些时间,请耐心等待。

验证

 登录和个性化设置

安装完成后,系统可能会提示您重启电脑。重启后,您可以通过在桌面右键点击找到“使用Visual Studio打开”的选项,或者在搜索栏输入Visual Studio 2022的前几个字母快速启动Visual Studio。

启动Visual Studio后,您可能需要登录。如果没有账户,可以选择“以后再说”。接着,选择您喜欢的颜色主题。

创建新项目

准备工作结束后,您可以创建一个新的项目。选择适合您需求的项目类型,例如控制台应用,并设置项目名称和位置。

创建项目后,您可以编写代码并运行测试,以确保Visual Studio安装和配置正确。

通过以上步骤,您应该能够成功安装并开始使用Visual Studio。 

安装Setup Factory

简介

Setup Factory 是一款功能强大的安装程序制作工具,以下是关于它的简介:

功能特点
  • 可视化界面设计:提供直观的图形化操作界面,用户通过简单的拖拽和设置操作,就能轻松创建安装程序,无需编写复杂的代码,降低了制作安装程序的技术门槛。
  • 支持多种安装类型:可以创建标准的安装程序、绿色免安装程序、Web 安装程序等,以满足不同软件发布场景的需求。例如,对于一些小型工具软件,可制作成绿色免安装程序,方便用户直接拷贝使用;对于大型软件系统,则可创建标准安装程序,进行全面的系统配置和文件安装。
  • 丰富的安装选项配置:用户能够灵活设置安装过程中的各种选项,如选择安装路径、创建桌面快捷方式、添加开始菜单条目、设置文件关联等。还能自定义安装界面的语言、外观和布局,使安装程序与软件的整体风格相匹配,提升用户体验。
  • 强大的脚本支持:虽然通过可视化界面能完成大部分设置,但对于一些复杂的安装需求,Setup Factory 提供了脚本编写功能。用户可以使用其内置的脚本语言,实现更高级的操作,如在安装前检查系统环境、在安装后执行特定的命令或程序等,增强了安装程序的灵活性和可定制性。
  • 文件压缩与加密:能够对安装包中的文件进行压缩,减小安装包的体积,方便用户下载和传输。同时,还支持对安装包进行加密,保护软件的知识产权和用户数据安全,防止安装包被非法篡改或破解。
应用场景
  • 软件开发者:用于将开发的软件项目打包成可安装的程序,以便分发给用户。无论是商业软件还是开源软件,都能通过 Setup Factory 制作出专业、可靠的安装程序,确保软件在用户计算机上正确安装和运行。
  • 系统管理员:在企业或组织内部,系统管理员可以使用 Setup Factory 为各种应用程序制作统一的安装程序,方便进行软件的部署和管理。例如,将办公软件、杀毒软件等批量安装到多台计算机上,提高软件部署的效率。
优势
  • 高效性:大大缩短了制作安装程序的时间,提高了软件发布的效率。用户无需花费大量时间学习复杂的安装程序制作技术,即可快速创建出满足需求的安装包。
  • 稳定性:生成的安装程序具有较高的稳定性和兼容性,能够在多种 Windows 操作系统版本上稳定运行,确保软件安装过程的顺利进行,减少因安装问题导致的用户投诉和支持成本。
  • 专业性:提供了丰富的定制选项,使安装程序具有专业的外观和用户体验。这有助于提升软件的品牌形象,让用户对软件产生更高的信任度。

下载

下载地址:Download Setup Factory - latest version

下载完成后,您将获得一个安装包:setup-factory-trial-9.7.0.0.exe。 

安装

双击打开 setup-factory-trial-9.7.0.0.exe 安装包,修改安装位置,其他采用默认安装即可。

验证

1、打开Setup Factory进行打包程序。填写软件信息,包括:公司名,软件名,软件版本号,公司官网地址。

2、设置软件是x86的还是x64版本。

3、选择要打包的程序所在目录

4、窗口设置,为安装软件提供窗口设置信息,这里采用下面的方式

5、“主题”窗口中,提供了主题下拉列表,每选择一种即出现预览效果界面。根据自己的喜好,选择一种。

6、多语言设置,一般勾选简体中文 “Chinese(Simplified)*”与“繁体中文Chinese(Traditional)”。勾选后在下拉框中选择一种语言作为默认语言,选择简体中文作为默认语言。

7、“从属”窗口中选择的技术是安装软件需要依赖的组件,由于要打包的程序是使用.net 4.5开发,选择.net4 就可以了。

注意:如果安装该软件的电脑没有.net4.0改怎么办,这里就需要在打包的时候讲.net framework4.0也打包到你的软件中。具体做法可以采用下面的方式:

在SetUpFactory软件所在的目录中新建一下目录:Dependencies\dotnet4 。并且将 dotNetFx40_Full_x86_x64.exe放在其中。

8、安装环境配置,包括卸载功能、记录日志功能、权限限制、软件安装的操作系统等选择功能。默认全选上。

9、单击完成,如图,在窗口中列出要打包的软件所需的所有文件。

10、设置主程序文件。

通过筛选功能,找到exe可执行文件。

11、设置exe属性

双击exe文件或者右键属性。选择如果存在则询问用户是否进行覆盖安装。

 12、程序“”快捷方式“”设置

因为测试项目比较简单,其它的设置不再赘述。

13、打包

设置安装文件大小:这个大小最好大于你的程序的大小+dotNetFx40_Full_x86_x64.exe(48.2M)的大小 

设置程序发布后安装包路径以及安装程序名称

解决报错

报错信息:

Build failed.

--------- Errors ---------
Compressing files...
Error 2090: Dependency file not found: D:\C++Develop\Setup Factory 9 Trial\Dependencies\dotnet4\dotNetFx40_Full_x86_x64.exe
--------------------------

解决办法:

需要将.net framework放在Setup Factory 安装目录下。

下载 dotNetFx40_Full_x86_x64.exe,大小48.1M。将该文件放在以上的目录下,重新打包。

下载地址:https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe

编译

打包完成

 通过以上步骤,您应该能够成功安装并开始使用Setup Factory。 

相关文章:

Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory

安装C 简介 Windows 版的 GCC 有三个选择: CygwinMinGWmingw-w64 Cygwin、MinGW 和 mingw-w64 都是在 Windows 操作系统上运行的工具集,用于在 Windows 环境下进行开发和编译。 Cygwin 是一个在 Windows 上运行的开源项目,旨在提供类Uni…...

开源免费文档翻译工具 可支持pdf、word、excel、ppt

项目介绍 今天给大家推荐一个开源的、超实用的免费文档翻译工具(DeeplxFile),相信很多人都有需要翻译文档的时刻,这款工具就能轻松解决你的需求。 它支持多种文档格式翻译,包括 Word、PDF、PPT、Excel ,使…...

从CNN到Transformer:遥感影像目标检测的未来趋势

文章目录 前言专题一、深度卷积网络知识专题二、PyTorch应用与实践(遥感图像场景分类)专题三、卷积神经网络实践与遥感影像目标检测专题四、卷积神经网络的遥感影像目标检测任务案例【FasterRCNN】专题五、Transformer与遥感影像目标检测专题六、Transfo…...

【GORM学习笔记】GORM介绍以及增删改查相关操作

优缺点 优点:提高开发效率,防止SQL注入、对不熟悉SQL语句的人友好、代码统一缺点:牺牲执行能力、牺牲灵活性、弱化SQL能力 在一些小型项目上使用ORM可以大大提高开发效率,但是在一些对性能要求高得场景下,ORM可能没有…...

WebSocket在分布式环境中的局限性及解决方案

WebSocket 在分布式环境中存在一些局限性,特别是当系统需要扩展多个服务实例时,单个 WebSocket 连接的管理和消息推送就变得比较复杂。因此,必须采取一些额外的措施来确保 WebSocket 能在多个服务实例之间正确工作。 WebSocket 在分布式环境…...

SIM盾构建安全底座的可行性分析

一、背景 1.1安全需求现状 在数字化时代,信息安全面临着日益严峻的挑战。各类网络攻击手段层出不穷,如数据泄露、恶意软件攻击、网络诈骗等,给个人、企业和社会带来了巨大的损失。为了保障信息系统的安全性,需要构建一个可靠的安…...

【Java八股文】10-数据结构与算法面试篇

【Java八股文】10-数据结构与算法面试篇 数据结构与算法面试题数据结构红黑树说一下跳表说一下?LRU是什么?如何实现?布隆过滤器怎么设计?时间复杂度? 排序算法排序算法及空间复杂度 数据结构与算法面试题 数据结构 红…...

go 并发 gorouting chan channel select Mutex sync.One

goroutine // head&#xff1a; 前缀 index&#xff1a;是一个int的指针 func print(head string, index *int) {for i : 0; i < 5; i {// 指针对应的int *indexfmt.Println(*index, head, i)// 暂停1stime.Sleep(1 * time.Second)} }/* Go 允许使用 go 语句开启一个新的运…...

亲测Windows部署Ollama+WebUI可视化

一. Ollama下载 登录Ollama官网(Ollama)点击Download进行下载 如果下载很慢可用以下地址下载&#xff1a; https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官网上&#xff0c;你可以直接点击【model】 到达这个界面之后&#xff0c;…...

linux 安装启动zookeeper全过程及遇到的坑

1、下载安装zookeeper 参考文章&#xff1a;https://blog.csdn.net/weixin_48887095/article/details/132397448 2、启动失败 1、启动失败JAVA_HOME is not set and java could not be found in PATH 已安装 JAVA 配置了JAVA_HOME,还是报错解决方法&#xff1a;参考&#xf…...

策略模式Spring框架下开发实例

策略类Spring框架下开发实例 先列出策略模式下需要那些类: 策略接口 (Strategy)&#xff0c;定义所有策略类必须遵循的行为。 具体策略类&#xff08;如 ConcreteStrategyA、ConcreteStrategyB&#xff09;&#xff0c;实现不同的算法或行为。 上下文类 (Context)&#xff0c;…...

DeepSeek模型量化

技术背景 大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;&#xff0c;可以通过量化&#xff08;Quantization&#xff09;操作来节约内存/显存的使用&#xff0c;并且降低了通讯开销&#xff0c;进而达到加速模型推理的效果。常见的就是把Float16的浮…...

【练习】【回溯:组合:不同集合】力扣 17. 电话号码的字母组合

题目 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “2…...

分布式文件系统HDFS

一、HDFS简介 HDFS&#xff08; Hadoop Distributed File System &#xff09;&#xff0c;意为&#xff1a;Hadoop分布式文件系统。是Apache Hadoop核心组件之一&#xff0c;作为大数据生态圈最底层的分布式存储服务而存在。分布式文件系统解决大数据如何存储问题。分布式意味…...

从WebRTC到EasyRTC:嵌入式适配的视频通话SDK实现低延迟、高稳定性音视频通信

WebRTC最初是为浏览器之间的实时通信设计的&#xff0c;其资源需求和复杂性可能对嵌入式设备的性能提出较高要求&#xff0c;因此在嵌入式系统中应用时面临一些挑战&#xff1a; 1&#xff09;资源消耗较高 CPU和内存占用&#xff1a;WebRTC是一个功能强大的实时通信框架&…...

WordPress自定义排序插件:Simple Custom Post Order完全指南(SEO优化版)

在WordPress建站中&#xff0c;文章、分类目录或页面的默认排序方式往往无法满足个性化需求。WordPress自定义排序插件&#xff1a;Simple Custom Post Order插件&#xff0c;你可以轻松实现拖拽式自定义排序&#xff0c;无需修改代码即可优化内容展示逻辑。本文将详细介绍这款…...

docker安装ros2 并在windows中显示docker内ubuntu系统窗口并且vscode编程

这里包括docker desktop安装ros2 humble hawkshill , 安装xserver(用来在windows中显示ubuntu中窗口), vscode安装插件连接docker并配置python的一系列方法 1.安装xserver 为了能方便的在windows中显示ubuntu内的窗口,比如rqt窗口 参考文章:https://www.cnblogs.com/larva-zhh…...

【QT中的一些高级数据结构,持续更新中...】

QT中有一些很精妙、便捷的设计&#xff0c;在了解这些数据的同时&#xff0c;我们可以学到如何更好的设计代码。本贴持续更新中&#xff0c;欢迎关注和收藏 一 QScopedPointer主要特点&#xff1a;示例代码 二 Q_DISABLE_COPY 一 QScopedPointer QScopedPointer 是 Qt 中的一种…...

简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;虽然不属于 GoF 23 种经典设计模式&#xff0c;但在实际开发中非常常用&#xff0c;尤其是在 Spring Boot 项目中。它提供了一种简单的方式来创建对象&#xff0c;将对象的创建逻辑集中到一个工厂类中。 一、简单工…...

《95015网络安全应急响应分析报告(2024)》

2025年2月&#xff0c;95015服务平台发布了最新一期的《95015网络安全应急响应分析报告&#xff08;2024&#xff09;》。报告分别从整体形势、受害者特征、攻击者特征等方面&#xff0c;对2024年95015平台接报的739起网络安全应急响应事件展开分析&#xff0c;并给出了7个年度…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...

iOS 项目怎么构建稳定性保障机制?一次系统性防错经验分享(含 KeyMob 工具应用)

崩溃、内存飙升、后台任务未释放、页面卡顿、日志丢失——稳定性问题&#xff0c;不一定会立刻崩&#xff0c;但一旦积累&#xff0c;就是“上线后救不回来的代价”。 稳定性保障不是某个工具的功能&#xff0c;而是一套贯穿开发、测试、上线全流程的“观测分析防范”机制。 …...

以太网PHY布局布线指南

1. 简介 对于以太网布局布线遵循以下准则很重要&#xff0c;因为这将有助于减少信号发射&#xff0c;最大程度地减少噪声&#xff0c;确保器件作用&#xff0c;最大程度地减少泄漏并提高信号质量。 2. PHY设计准则 2.1 DRC错误检查 首先检查DRC规则是否设置正确&#xff0c;然…...

Asp.net Core 通过依赖注入的方式获取用户

思路&#xff1a;Web项目中&#xff0c;需要根据当前登陆的用户&#xff0c;查询当前用户所属的数据、添加并标识对象等。根据请求头Authorization 中token&#xff0c;获取Redis中存储的用户对象。 本做法需要完成 基于StackExchange.Redis 配置&#xff0c;参考&#xff1a;…...