Visual studio 中.sln/.vcxproj/.vcxproj.filters和.vcxproj.user文件的作用
在 Visual Studio (尤其是 C++ 项目) 中,.sln
、.vcxproj
、.vcxproj.filters
和 .vcxproj.user
文件各自承担着不同的关键角色。理解它们的作用对于项目管理和协作至关重要。
核心原则:
.vcxproj
和.sln
是项目/解决方案的核心定义文件,必须纳入版本控制系统。.vcxproj.filters
主要用于组织解决方案资源管理器的视图,强烈建议纳入版本控制以保持团队视图一致。.vcxproj.user
存储用户特定的环境设置,绝对不应纳入版本控制系统。
1. .sln
(Solution File - 解决方案文件)
- 作用: 这是 Visual Studio 解决方案的主入口文件。它本身不包含项目具体的编译设置,而是作为一个容器和协调者:
- 组织项目: 定义一个解决方案包含哪些项目(
.vcxproj
文件)。 - 项目依赖关系: 定义项目之间的构建顺序依赖(例如,项目 B 依赖项目 A,那么构建 B 时会先构建 A)。
- 解决方案配置: 定义解决方案级别的生成配置(如
Debug | x86
,Release | x64
),这些配置会映射到其所包含项目的对应配置。 - 集成开发环境 (IDE) 状态: 有时会存储一些与 IDE 窗口布局、打开的文件等相关的状态信息(但这部分信息变化频繁,通常不建议纳入版本控制)。
- 组织项目: 定义一个解决方案包含哪些项目(
- 文件格式: 文本文件(通常是人类可读的,但结构复杂)。
- 版本控制: 必须纳入版本控制。它是打开整个解决方案和所有项目的基础。
- 具体案例:
- 场景: 你有一个大型应用程序,包含一个主可执行程序项目 (
MyApp
)、一个核心功能静态库项目 (CoreLib
) 和一个单元测试项目 (UnitTests
)。 MySolution.sln
内容 (简化概念):Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreLib", "CoreLib\CoreLib.vcxproj", "{GUID1}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyApp", "MyApp\MyApp.vcxproj", "{GUID2}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "UnitTests\UnitTests.vcxproj", "{GUID3}" EndProject GlobalGlobalSection(SolutionConfigurationPlatforms) = preSolutionDebug|x64 = Debug|x64Release|x64 = Release|x64EndGlobalSectionGlobalSection(ProjectConfigurationPlatforms) = postSolution{GUID1}.Debug|x64.ActiveCfg = Debug|x64{GUID1}.Debug|x64.Build.0 = Debug|x64... (其他项目的配置映射)EndGlobalSectionGlobalSection(SolutionProperties) = preSolutionHideSolutionNode = FALSEEndGlobalSectionGlobalSection(NestedProjects) = preSolution{GUID3} = {FolderGUID} # 可能表示 UnitTests 在某个Solution Folder里EndGlobalSectionGlobalSection(ExtensibilityGlobals) = postSolution... (可能包含一些扩展信息)EndGlobalSection EndGlobal
- 作用体现: 双击
MySolution.sln
会在 VS 中打开整个解决方案,显示CoreLib
,MyApp
,UnitTests
三个项目。构建整个解决方案时,VS 会根据依赖关系(可能定义在ProjectDependencies
部分,未在上例显示)按正确顺序构建它们(例如先构建CoreLib
,再构建依赖它的MyApp
和UnitTests
)。
- 场景: 你有一个大型应用程序,包含一个主可执行程序项目 (
2. .vcxproj
(Visual C++ Project File - 项目文件)
- 作用: 这是单个 C++ 项目的核心定义文件。它包含项目生成所需的所有关键信息:
- 项目配置: 编译器选项 (优化、警告级别、预处理器定义
/D
、包含目录/I
)、链接器选项 (输出文件名、库目录/LIBPATH
、附加依赖项.lib
)、预生成事件、生成后事件等。这些配置通常是按Configuration|Platform
(如Debug|Win32
,Release|x64
) 组织的。 - 文件列表: 项目中包含的所有源代码文件 (
.cpp
,.c
,.h
)、资源文件 (.rc
)、图标文件等。注意: 文件路径是相对于.vcxproj
文件本身或使用项目属性宏 (如$(ProjectDir)
) 的。 - 项目引用: 该项目所依赖的其他项目 (通常是同一解决方案中的
.vcxproj
项目)。这告诉构建系统需要先构建这些依赖项目。 - 目标平台、工具集版本: 项目使用的 Windows SDK 版本、平台工具集 (如
v143
for VS 2022)。 - 项目类型: 生成的是控制台应用 (
.exe
)、Windows 应用 (.exe
)、动态库 (.dll
)、静态库 (.lib
) 还是其他。
- 项目配置: 编译器选项 (优化、警告级别、预处理器定义
- 文件格式: XML 文件。
- 版本控制: 绝对必须纳入版本控制。这是项目构建的蓝图。
- 具体案例:
- 场景:
MyApp
项目的.vcxproj
文件。 MyApp.vcxproj
内容片段 (简化概念):<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="..."><ItemGroup Label="ProjectConfigurations"><ProjectConfiguration Include="Debug|x64"><Configuration>Debug</Configuration><Platform>x64</Platform></ProjectConfiguration><ProjectConfiguration Include="Release|x64"><Configuration>Release</Configuration><Platform>x64</Platform></ProjectConfiguration></ItemGroup><PropertyGroup Label="Globals"><ProjectGuid>{GUID2}</ProjectGuid><Keyword>Win32Proj</Keyword><RootNamespace>MyApp</RootNamespace><WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion><PlatformToolset>v143</PlatformToolset></PropertyGroup><Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"><ConfigurationType>Application</ConfigurationType> <!-- 生成 .exe --><UseDebugLibraries>true</UseDebugLibraries><CharacterSet>Unicode</CharacterSet></PropertyGroup><Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /><ImportGroup Label="ExtensionSettings" /><ImportGroup Label="PropertySheets" ...> <!-- 可能导入 .props 属性表 --><PropertyGroup Label="UserMacros" /><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"><IncludePath>$(SolutionDir)CoreLib\include;%(AdditionalIncludeDirectories)</IncludePath><OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir><IntDir>$(SolutionDir)obj\$(PlatformTarget)\$(Configuration)\$(ProjectName)\</IntDir></PropertyGroup><ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"><ClCompile><PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions><WarningLevel>Level3</WarningLevel><Optimization>Disabled</Optimization><SDLCheck>true</SDLCheck></ClCompile><Link><SubSystem>Console</SubSystem><GenerateDebugInformation>true</GenerateDebugInformation><AdditionalDependencies>kernel32.lib;user32.lib;CoreLib.lib;%(AdditionalDependencies)</AdditionalDependencies></Link></ItemDefinitionGroup><ItemGroup><ClCompile Include="Main.cpp" /> <!-- 包含源代码文件 --><ClCompile Include="Utils.cpp" /><ClInclude Include="Utils.h" /> <!-- 包含头文件 --></ItemGroup><ItemGroup><ProjectReference Include="..\CoreLib\CoreLib.vcxproj"> <!-- 项目引用 --><Project>{GUID1}</Project></ProjectReference></ItemGroup><Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /><Target Name="PostBuildEvent" AfterTargets="PostBuildEvent"><Exec Command="copy $(TargetPath) $(SolutionDir)..\Deployment\" /> <!-- 生成后事件 --></Target> </Project>
- 作用体现: 这个文件告诉 MSBuild (VS 的构建引擎):
- 项目包含
Main.cpp
,Utils.cpp
,Utils.h
。 - 在
Debug|x64
配置下:- 编译时:使用调试库,定义
WIN32; _DEBUG; _CONSOLE
等宏,包含..\CoreLib\include
目录,关闭优化,警告等级 3。 - 链接时:生成控制台程序 (
/SUBSYSTEM:CONSOLE
),生成调试信息 (/DEBUG
),链接kernel32.lib
,user32.lib
和CoreLib.lib
。 - 输出到
bin\x64\Debug\MyApp.exe
,中间文件放在obj\x64\Debug\MyApp\
。
- 编译时:使用调试库,定义
- 项目依赖
CoreLib
项目。 - 构建成功后 (
PostBuildEvent
),将生成的MyApp.exe
复制到..\Deployment\
目录。
- 项目包含
- 场景:
3. .vcxproj.filters
(Project Filters File - 项目筛选器文件)
- 作用: 纯粹用于在 Visual Studio 的解决方案资源管理器中组织源代码文件的虚拟文件夹结构。它定义了
.vcxproj
文件中列出的文件在 IDE 树形视图中如何分组(例如,“头文件”、“源文件”、“资源文件”等文件夹,或者自定义的“GameLogic”、“UI”文件夹)。它不影响编译过程本身。 - 文件格式: XML 文件。
- 版本控制: 强烈推荐纳入版本控制。这确保了团队成员在解决方案资源管理器中看到的项目文件组织结构是一致的。如果缺失,VS 会自动生成一个,但可能不符合团队的期望结构。
- 具体案例:
- 场景: 你想在
MyApp
项目的解决方案资源管理器中清晰地组织文件。 MyApp.vcxproj.filters
内容片段 (简化概念):<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="..."><ItemGroup><Filter Include="Source Files"><UniqueIdentifier>{GUID4}</UniqueIdentifier></Filter><Filter Include="Header Files"><UniqueIdentifier>{GUID5}</UniqueIdentifier></Filter><Filter Include="Game Logic"> <!-- 自定义文件夹 --><UniqueIdentifier>{GUID6}</UniqueIdentifier></Filter></ItemGroup><ItemGroup><ClCompile Include="Main.cpp"><Filter>Source Files</Filter> <!-- Main.cpp 放在 "Source Files" 虚拟文件夹下 --></ClCompile><ClCompile Include="Utils.cpp"><Filter>Game Logic</Filter> <!-- Utils.cpp 放在自定义的 "Game Logic" 虚拟文件夹下 --></ClCompile><ClInclude Include="Utils.h"><Filter>Game Logic</Filter> <!-- Utils.h 也放在自定义的 "Game Logic" 虚拟文件夹下 --></ClInclude></ItemGroup> </Project>
- 作用体现: 在 VS 的解决方案资源管理器中查看
MyApp
项目时:- 你会看到一个名为 “Source Files” 的文件夹,里面包含
Main.cpp
。 - 你会看到一个名为 “Header Files” 的文件夹(虽然在这个例子中没有文件显式放进去,VS 有时会自动放一些头文件)。
- 你会看到一个名为 “Game Logic” 的自定义文件夹,里面包含
Utils.cpp
和Utils.h
。这个组织结构只存在于 IDE 视图中,磁盘上的文件实际位置由.vcxproj
中的Include
路径决定(通常是项目目录或其子目录)。关键点: 如果你在磁盘上创建了一个GameLogic
子文件夹并把Utils.cpp/h
放进去,你仍然需要在.vcxproj
中正确指定它们的路径 (如<ClCompile Include="GameLogic\Utils.cpp" />
) 并且在.filters
文件中指定它们显示在哪个虚拟文件夹下。.filters
只控制视图,不控制文件在磁盘上的位置或编译时的查找路径。
- 你会看到一个名为 “Source Files” 的文件夹,里面包含
- 场景: 你想在
4. .vcxproj.user
(User Project Options File - 用户项目选项文件)
- 作用: 存储特定于本地用户开发环境和特定于这台计算机的设置。这些设置不应该影响项目本身的构建结果(如果项目能在你的机器上构建成功,它也应该能在其他配置正确的机器上构建成功)。
- 常见设置:
- 调试设置: 启动命令、命令行参数、工作目录、要启动的调试器类型(本地、远程)、环境变量(用于调试会话)。
- 部署设置: (较少用,尤其是 C++)。
- 其他 IDE 个性化: 有时会存储一些与项目加载或特定工具窗口相关的视图状态(但这部分通常更推荐存储在
.suo
文件中)。
- 文件格式: XML 文件。
- 版本控制: 绝对不要纳入版本控制!这是个人工作环境的设置。将其纳入版本控制会导致:
- 团队冲突:每个人的调试路径、参数等很可能不同。
- 污染仓库:包含大量无关的机器特定路径。
- 潜在的安全风险:可能包含本地路径或敏感的环境变量。
- 具体案例:
- 场景: 你在开发
MyApp
时需要配置调试参数。 MyApp.vcxproj.user
内容片段 (简化概念):<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="Current" xmlns="..."><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"><LocalDebuggerCommandArguments>-level 5 -map forest</LocalDebuggerCommandArguments> <!-- 调试命令行参数 --><LocalDebuggerWorkingDirectory>$(SolutionDir)..\Assets\</LocalDebuggerWorkingDirectory> <!-- 调试工作目录 --><DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor> <!-- 使用本地 Windows 调试器 --><LocalDebuggerEnvironment>PATH=$(ExecutablePath);%PATH%</LocalDebuggerEnvironment> <!-- 设置调试环境变量 --></PropertyGroup> </Project>
- 作用体现: 当你在 VS 中按 F5 调试
MyApp
的Debug|x64
配置时:- 程序会以命令行参数
-level 5 -map forest
启动。 - 程序的当前工作目录会被设置为
..\Assets\
。 - 调试器会在
..\Assets\
目录下查找程序所需的资源文件(如果程序使用相对路径访问资源)。 - 环境变量
PATH
被临时修改,添加了$(TargetDir)
(MyApp.exe
所在目录) 到系统 PATH 的开头,方便程序找到它依赖的.dll
(尤其是当这些.dll
在输出目录中时)。这些设置只影响你在这台特定电脑上的调试体验。其他同事克隆项目后,他们需要在自己的.user
文件(VS 会自动为他们生成)或项目属性页的调试设置中配置他们自己的路径和参数。
- 程序会以命令行参数
- 场景: 你在开发
总结与关系图:
+------------------+| MySolution.sln | (容器:包含哪些项目,项目依赖,解决方案配置)+------------------+/ \/ \/ \
+---------------------+ / \ +---------------------+
| MyApp.vcxproj |<-- -->| CoreLib.vcxproj | (项目核心:文件列表、编译链接选项、引用)
| MyApp.vcxproj.filters| | | CoreLib.vcxproj.filters | (视图:文件在资源管理器中的组织)
| MyApp.vcxproj.user | | | CoreLib.vcxproj.user | (用户特定:调试设置 - 不提交!)
+---------------------+ | +---------------------+|| (依赖)|+-------v-------+ | 构建系统 (MSBuild) |+----------------+ |v生成 .exe/.dll/.lib 等输出
.sln
是总纲,指明有哪些项目(.vcxproj
)以及它们之间的关系。.vcxproj
是每个项目的构建说明书,包含所有机器无关的关键配置和文件列表。必须提交。.vcxproj.filters
是项目文件在 VS 界面里的“书架标签”,方便开发者浏览。强烈建议提交。.vcxproj.user
是你个人工作台上的便利贴(调试参数、工作路径)。切勿提交!
相关文章:
Visual studio 中.sln/.vcxproj/.vcxproj.filters和.vcxproj.user文件的作用
在 Visual Studio (尤其是 C 项目) 中,.sln、.vcxproj、.vcxproj.filters 和 .vcxproj.user 文件各自承担着不同的关键角色。理解它们的作用对于项目管理和协作至关重要。 核心原则: .vcxproj 和 .sln 是项目/解决方案的核心定义文件,必须纳…...

【汽车电子入门】一文了解LIN总线
前言:LIN(Local Interconnect Network)总线,也就是局域互联网的意思,它的出现晚于CAN总线,于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发,其目的是提供一…...
JVM学习(七)--JVM性能监控
目录 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 2、JVM监控及诊断工具-GUI篇 3、JVM运行时参数 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 面试题: 1、你使用过Java虚拟机性能监控和故障处理工具吗? 2、怎么打出线程栈信息。 3、怎么获取 Jav…...
关于 java:5. Java IO 与文件操作
一、File 类(读取文件属性) 1.1 java.io.File 类概述 File 是 Java IO 中的核心类,用于表示文件或目录的路径名。 它是一个抽象路径名,可以表示实际存在或不存在的文件/文件夹。 File 类提供了创建、删除、重命名、判断属性、获…...

【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)
📝 为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境) 🎯 安装目的说明 本次安装是为了在 MSYS2 的 MINGW64 工具链环境中,搭建一个完整的 Python 图像处理和科学计算开发环境。 主要目的是支持以下类型的 Pyth…...
【笔记】MLA矩阵吸收分析
文章目录 一、张量运算的计算量1. FLOPs定义2. 张量计算顺序对计算量的影响 二、MLA第一次矩阵吸收的计算量分析1. 原始注意力计算2. MLA源代码中的吸收方式3. 提前吸收4. 比较分析4.1 比较顺序1和顺序24.2 比较顺序2和顺序3 三、MLA第二次矩阵吸收的计算量分析1. 原始输出计算…...
600+纯CSS加载动画一键获取指南
CSS-Loaders.com 完整使用指南:600纯CSS加载动画库 🎯 什么是 CSS-Loaders.com? CSS-Loaders.com 是一个专门提供纯CSS加载动画的资源网站,拥有超过600个精美的单元素加载器。这个网站的最大特色是所有动画都只需要一个HTML元素…...
开源的JT1078转GB28181服务器
JT1078转GB28181流程 项目地址: JT1078转GB28181的流媒体服务器: https://github.com/lkmio/lkm JT1078转GB28181的信令服务器: https://github.com/lkmio/gb-cms 1. 创建GB28181 UA 调用接口: http://localhost:9000/api/v1/jt/device/add 请求体如下…...

智能守护电网安全:探秘输电线路测温装置的科技力量
在现代电力网络的庞大版图中,输电线路如同一条条 “电力血管”,日夜不息地输送着能量。然而,随着电网负荷不断增加,长期暴露在户外的线路,其线夹与导线在电流热效应影响下,极易出现温度异常。每年因线路过热…...
Java垃圾回收算法及GC触发条件
一、引言 在Java编程语言的发展历程中,内存管理一直是其核心特性之一。与C/C等需要手动管理内存的语言不同,Java通过自动垃圾回收(Garbage Collection,简称GC)机制,极大地减轻了开发人员的负担,…...

【Hot 100】118. 杨辉三角
目录 引言杨辉三角我的解题代码优化优化说明 🙋♂️ 作者:海码007📜 专栏:算法专栏💥 标题:【Hot 100】118. 杨辉三角❣️ 寄语:书到用时方恨少,事非经过不知难! 引言 …...

useMemo useCallback 自定义hook
useMemo & useCallback & 自定义hook useMemo 仅当依赖项发生变化的时候,才去重新计算;其他状态变化时则不去做不必要的计算。 useCallback 缓存函数。但是使用注意📢 ,useCallback没有特别明显的优化。 *合适的场景——父…...

ffmpeg 的视频格式转换 c# win10
1,下载ffmpeg ,并设置环境变量。 ffmpeghttps://www.gyan.dev/ffmpeg/builds/ 2.新建.net 9.0 winform using System; using System.Diagnostics; using System.Text; using System.Windows.Forms;namespace WinFormsApp11 {public partial class Fo…...

【irregular swap】An Examination of Fairness of AI Models for Deepfake Detection
文章目录 An Examination of Fairness of AI Models for Deepfake Detection背景points贡献深伪检测深伪检测审计评估检测器主要发现评估方法审计结果训练分布和方法偏差An Examination of Fairness of AI Models for Deepfake Detection 会议/期刊:IJCAI 2021 作者: 背景…...

【JAVA】注解+元注解+自定义注解(万字详解)
📚博客主页:代码探秘者 ✨专栏:《JavaSe》 其他更新ing… ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏作者水平有限,欢迎各位大佬指点&…...

【Doris基础】Apache Doris中的Version概念解析:深入理解数据版本管理机制
目录 引言 1 Version概念基础 1.1 什么是Version 1.2 Version的核心作用 1.3 Version相关核心概念 2 Version工作机制详解 2.1 Version在数据写入流程中的作用 2.2 Version在数据查询流程中的作用 2.3 Version的存储结构 3 Version的进阶特性 3.1 Version的合并与压…...
【Linux 基础知识系列】第一篇-Linux 简介与历史
一、什么是 Linux? Linux 是一种类 Unix 操作系统,它是由 Linus Torvalds 于 1991 年首次发布的。作为一个开源操作系统,Linux 的源代码可以被任何人自由使用、修改和分发。在现代计算环境中,Linux 凭借其强大的性能、高稳定性、…...

【图像处理基石】如何进行图像畸变校正?
图像畸变校正常用于计算机视觉、摄影测量学和机器人导航等领域,能够修正因镜头光学特性或传感器排列问题导致的图像失真。下面我将介绍几种常用的图像畸变校正算法,并提供Python实现和测试用例。 常用算法及Python实现 1. 径向畸变校正 径向畸变是最常…...
软件开发项目管理工具选型及禅道开源版安装
软件开发项目管理工具选型及禅道开源版安装 为啥选禅道 你以为我选禅道之前没有对比吗? 作为Java码农,首先想到的就是Jira,然而它太重了。。 我们用企微作为沟通工具,腾讯的TAPD的确好用,但是它不开源啊,…...
【架构艺术】平衡技术架构设计和预期的产品形态
近期笔者因为工作原因,开始启动team内部部分技术项目的重构。在事情启动的过程中,内部对于这件事情的定性和投入有一些争论,但最终还是敲定了下来。其中部分争论点主要在于产品形态,因为事情涉及到跨部门合作,所以产品…...

电力系统时间同步系统
电力系统中,电压、电流、功率变化等特征量测量都是时间相关函数[1],统一精准的时间源对于电网安全稳定运行至关重要,因此,电力系统运行规程[2]中明确要求继电保护装置、自动化装置、安全稳定控制系统、能量管理系统和生产信息管理…...

Vue使用toFixed保留两位小数的三种写法
第一种:直接写在js里面,这是最简单的 val.toFixed(2)第二种:在ElementUi表格中使用 第三种:在取值符号中使用 {{}} 定义一个方法 towNumber(val) { return val.toFixed(2) } 使用 {{ towNumber(row.equiV…...
华为云【Astro zero】如何做“设备编辑”页面
目录 一、整体原理概述(逻辑图+原理) 1. 页面组件组装(用户交互界面) 2. 数据模型(数据临时存储) 3. 页面事件(逻辑交互) 二、详细操作步骤(按功能模块分) ✅【1】页面创建与结构组装 ✅【2】定义自定义模型与字段(临时数据绑定) ✅【3】定义服务模型(与后…...

Arch安装botw-save-state
devkitPro https://blog.csdn.net/qq_39942341/article/details/148387077?spm1001.2014.3001.5501 cargo https://blog.csdn.net/qq_39942341/article/details/148387783?spm1001.2014.3001.5501 megaton https://blog.csdn.net/qq_39942341/article/details/148388164?spm…...

电脑为什么换个ip就上不了网了
在日常使用电脑上网时,很多人可能遇到过这样的问题:当IP地址发生变化后,突然就无法连接网络了。当电脑更换IP地址后无法上网,这一现象可能由多种因素导致,涉及网络配置、硬件限制或运营商策略等层面。以下是系统性分析…...
NULL与空字符串的区别:数据库专家详解
NULL与空字符串的区别:数据库专家详解 1. NULL的概念解析 1.1 NULL的定义 在数据库系统中,NULL是一个特殊标记,表示"未知"或"不存在"的值。它不是任何数据类型的实例,而是表示缺失值的标记。 go专栏&#…...

github 2FA双重认证丢失解决
文章目录 前言一. 凭借ssh 解锁步骤1.1 要求输入设备码1.2.进入二重验证界面1.3.开始2FA恢复1.4.选择使用ssh验证 二.预防措施2.1 云盘上传git_recover_codes.txt2.2 开启多源FA认证2.2.1 大陆无法使用手机验证码 三.参考资料 前言 场景:没有意识到github recovery …...

linux驱动 - 5: simple usb device驱动
参考第2节, 准备好编译环境并实现hello.ko: linux驱动 - 2: helloworld.ko_linux 驱动开发 hello world ko-CSDN博客 下面在hello模块的基础上, 添加代码, 实现一个usb设备驱动的最小骨架. #include <linux/init.h> #include <linux/module.h> #include <lin…...
OpenCV CUDA模块直方图计算------在 GPU 上计算输入图像的直方图(histogram)函数histEven()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数用于在 GPU 上计算输入图像的直方图(histogram)。它将像素值区间均匀划分为若干个 bin(桶)…...
QT/c++航空返修数据智能分析系统
简介 1、区分普通用户和管理员 2、界面精美 3、功能丰富 4、使用cppjieba分词分析数据 5、支持数据导入导出 6、echarts展示图表 效果展示 演示链接 源码获取 int main(){ //非白嫖 printf("📡:%S","joyfelic"); return 0; }...