【IDE】v嗖s丢丢的一些使用

以官网说明调试器文档 - Visual Studio (Windows) | Microsoft Learn为准,这里就是瞎掰

VS安装

官方下载的是VS setup,用来安装VS installer(默认装在C盘下的Program File x86下的Microsoft下的Installer)的,这个东西才是安装相应年份版本VS的。这里下载的是v17.7.6(installer 查看),可以查看Visual Studio 2022 版本 17.6 发行说明 | Microsoft Learn,里面还有该发行版本CVE一览

  • ATL和下面的MFC都是用来开发windows应用的,这里先不安装,测试工具同理。WIN11SDK一定要安,这里面放的各种头文件,不然“hello world”都跑不起来!

  • vcpkg用于第三方的包管理工具,VS有NuGet集成;Cmake为第三方的构建工具(跨OS开发较好),作用和上面的C++Build类似(仅Windows下VS可用)。

剩下的东西对于查看内存,汇编等还是有用的,按需所取。Important,你后面可以打开这个Installer再下。

之后如果想要减小VS对C盘的占用的话,可以参考VS2019/VS2022移动安装位置/C盘瘦身的一个好方法,亲测有效_vs安装位置-CSDN博客来进行快捷方式建立

之后就是更改字体与背景之类的啦,背景的话需要下载扩展“Claudia IDE”,下载后需要重新启动。点击上栏中的“工具”——“选项”即可打开字体设置之类的,找到“ClaudiaIDE”中进行背景图片路径更改即可

第三方包的使用

首先说明对于C/C++这样的语言来说,包管理工具很难,python的pip、js的npm甚至是java的maven等,都是针对语言的,因为这些语言与编译器和版本的依赖关系并没有那么大的差距。对于C/C++来说,我们需要对于不同的OS、位、编译器等都编译出相应的静态或动态库,之后再进行引用,就像只能在Linux中gcc使用apt-get一样。除了下面即将提到包管理工具外,还有Conan、Hunter等

根据网上搜查结果,目前有三种在VS中使用第三方包的方法:Nuget包管理、VS中项目自引用、Vcpkg包管理。(VS用的自家集成的!MSBuild工具,不同于CMake等构建,当然你也可以使用CMake,这里不多bb)

  1. Nuget包管理

这个东东集成在VS中(它甚至集成了C#和VB),本来是用来管理C#的包的,但是后来也能够管理C++的第三方包了。

首先我们需要打开一个项目(不能仅仅是文件夹),在最上面一栏中找到"项目"——"管理NuGet程序包"或者在"工具"——"NuGet包管理器"中找到,打开后如下界面:

点击相关的包,右面就会显示它的详情信息,需要注意的是,下面会有依赖项,这个东西NuGet会自动帮你下载有关依赖。

也可以到到NuGet Gallery | Home进行下载,会有更多的版本供选择,假设我们要下载Detours库(一个巨硬官方的hook库)搜索该库,点击进去,选择控制台命令那列“PM> NuGet\Install-Package Detours -Version x.x.x”后,进入到VS中的NuGet控制台输入,并选择目标项目即可安装

  1. Vcpkg包管理

介个东东不像上面的Nuget,它本来“巨硬”就是为CPP打造的,可以在VS安装安装器中时安装该组件,当然也可以第三方下载。这里我们在安装器中下载在VS目录下的“\VC\vcpkg”中,最好设置一下环境变量,方便打开(添加用户环境变量,值为xxx\vcpkg就行)

C++开源库 - 包管理工具Vcpkg安装使用教程 - fengMisaka - 博客园 (cnblogs.com)这篇文章也许可以扫个盲?

管理员执行!vcpkg integrate project用于下载适配插件和vcpkg integrate install用来适配全局,即开发者无需知道vcpkg把包安装在哪里

之后查找第一条命令最下面一行,看看-Source后面的安装地址(由于对指令不了解,就没有指定位置了,当然你也可以下载后拖到“\VC\vcpkg\script\buildsystems”中)。之后更新程序包源,浏览之后安装我们刚才下载的插件

之后点击安装,在不同的项目下引用,之后就可以引用vcpkg下载的包

下面是一些可能或用到的命令,vcpkg 文档 | Microsoft Learn

  • vcpkg integrate remove:移除全局设置

  • vcpkg search:查看库目录

  • vcpkg remove/update/install xxx:x64-windows:删除/更新/安装包,后面跟指定平台

  • vcpkg list:查看所有已安装的库

  • vcpkg help triplet:查看支持的平台

之后引用库就可以像NuGet那样直接使用了,要注意包和真正的头文件位置!"detours.h"还是"detours/detours.h"

  1. VS项目引用(NuGet没有的话最好的选择)

这个同样对于每个项目来说都需要单独配置,添加下载的第三方包的绝对路径,需要注意我们在添加库时如果x/include结束,则我们需要引用<a/xxx.h>,如果添加x/include/a则可直接<target.h>,这时我们只是能够单纯的有个头文件,这个头文件下面能干啥还不知道,因此还需要包含相应的lib和dll(对应xx/lib文件夹)

当然你也可以直接拖到项目里面,省时省力(如果你知道具体要调用啥的话

VS解决方案目录简要说明

这里我们将解决方案与项目放在同一文件夹下,如果不在一个文件夹下将会在解决方案目录下生成多个项目文件,下面的东西除了sln都将会在项目文件夹下(在VS中:解决方案>项目)。以通讯录管理系统为例子:本人使用x86,x64,debug,release都执行了一遍。默认生成配置

该项目下的Debug和Release默认都是32位,也就是x86得到的结果,在x64下也有这两个文件夹。一般来说我们在VS中看到的头文件、源文件等代码文件都是在上面的目录中。而得到的可执行文件一般就在Debug或Release文件夹中。

项目和解决方案文件(均可用记事本打开):

  • .sln:VS专用解决方案文件,在VS下解决方案可包含多个项目,该文件用于同一这些项目

  • .vcxproj:xml文件,是将所有的文件和配置信息都放在了一起

  • .vcxproj.filters:xml文件,指定上面的文件中哪些是头文件、资源文件等。这也就是为什么打开VS后解决方案管理中的源文件和头文件等有文件夹,而实际目录下面却没有的原因

  • .vcxproj.user:xml文件,本地化用户配置(界面配置)

接下来我们对比看一下生成的debug和release文件,由于x86和x64的文件结构一样,我们下面以x86为例子

debug配置即调试版本,程序将不进行优化,得到的结果通常包含调试信息;release即发布版本进行完全优化,一般不保存调试信息(当然你可自己配置生成的东西)

  • .obj:即linux上的.o文件,是经过预编译-编译-汇编后得到的最终代码的二进制形式

  • .pdb:vc143表示143版本的VC编译器,用于存储所有obj文件的调试信息(即符号表),因为这个项目中我们只有一个源文件eTelBook.cpp所以只生成了一个obj;下面的“通讯录管理系统.pdb”则是最终生成的二进制程序的符号表

  • .ilk:obj有了之后,就到链接过程了,该文件用于提供链接信息

  • .idb:源文件和类定义之间的依赖信息。Visual Studio C++ 项目创建的文件类型

  • .iobj和ipdb文件据早期msdn帖子说是有关增量链接功能生成的

在解决方案中右键项目选择属性,在其中配置有关生成文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值