0


Visual Studio 2022工作原理及相关配置参数(干货满满)——C++

最近工作有点忙,毕业也没多久,确实在企业和学校还是有很大的差距的,这段时间学到了很多很多,也没时间顾及博客了,刚好趁着这个1024稍微放慢脚步,总结总结。
最近用Visual Studio比较频繁,也学到了很多相关的内容,借此博文简单记录一下,全是个人理解,若有地方理解有误还请各位大佬评论指正,万分感谢。

一、Visual Studio运行流程

加入有一个

yy.cpp

文件,当我们在Vistual Studio下点击运行时,该文件大致会经过以下过程:

yy.cpp ===> 预编译器 ===> 生成yycpp.i预处理后的文件(头文件、宏等展开复制) ===> 编译器 ===> yy.asm(汇编文件) 
接上一行===> 汇编器   ===> yy.obj\yy.o(yy.obj是Windows下的二进制文件,yy.o是Linux下的二进制文件)
接上一行===> 链接器   ===> yy.exe\yy(yy.exe是Windows下的可执行文件,yy是Linux下的可执行文件)

其中可以核心为

编译器

链接器
编译器(Compiler)

主要作用:将头文件、宏等进行展开复制替换,每个.cpp会对应生成二进制文件(.obj),.cpp和.obj一一对应

链接器(Linker)

主要作用:将多个二进制文件(.obj)进行整合成一个exe可执行文件

二、Visual Studio相关配置介绍

1,解决方案配置

在这里插入图片描述
Debug和Release大家应该见的很多了,Debug慢,编译器不优化,但有调试信息;Release快,编译器会优化代码,但没调试信息
其实它俩只不过是一套固定的规则模板而已
通过配置也可以将Debug修改成优化、速度优先等,和Release一样

当然Debug和Release有很多区别,比如
Relase下C/C++的优化是优选速度
在这里插入图片描述

Debug的则是禁用
在这里插入图片描述

那我把Debug的相关配置改成和Release完全一样,实在Debug和Release就完全一样了,但不建议哈!!!

2,Visual Studio的目录结构

这些都是虚拟的文件夹,都是假的,虚拟出来的,硬盘中是不存在这些文件夹的
在这里插入图片描述

点击显示所有文件,这才是真正的目录结构
在这里插入图片描述

3,查看预编译文件(yycpp.i)

上述介绍过了,在Windows下

.i

是二进制文件,假如我们有个yy.cpp,对其进行预编译,可以得到预处理后的文件

yycpp.i
//yy.cpp#include<iostream>intmain(int argc,char** argv){int a =10;int b =20;int c = a + b;
    std::cout <<"The sum of "<< a <<" and "<< b <<" is "<< c << std::endl;
    std::cin.get();return0;}

选择实际的配置,我是Debug下,在C/C++的预处理器中,把

预处理得到文件

选项选择

,应用,确定
在这里插入图片描述
运行程序之后,回到项目文件夹下,可以看到

yycpp.i

预处理文件

在这里插入图片描述
打开之后,我滴妈6w多行,这些基本都是头文件

#include <iostream>

的内容,头文件会将对应的内容进行拷贝到这里面,我们的代码实际就框出来那一丢丢
在这里插入图片描述

yycpp.i

是我们的程序经过预编译之后的结果

再改回来配置吧
在这里插入图片描述

4,查看汇编文件(yycpp.asm)

修改配置,一定要和你当前的配置一致,都是Debug或者Release哈
在这里插入图片描述
运行程序,多出来

yycpp.asm

汇编文件
在这里插入图片描述
也有小两千行
在这里插入图片描述
同样再改回来配置吧
在这里插入图片描述

5,程序入口

其实默认的程序入口是

main

函数,在Visual Studio中可以修改程序入口
在这里插入图片描述
微软官网文档:/ENTRY(入口点符号)

三、Visual Studio最佳配置

在Visual Studio下创建的时候,最好先创建一个解决方案,如何再创建项目
一个解决方案可以管理多个项目,例如,我这里解决方法为Project1,第一个项目也是Project1
其中

Project1.sln

为解决方案,

Project1.vcxproj

是我们的项目文件配置,它只是一个XML文件,包含了诸如属性表等配置参数信息
在这里插入图片描述

Visual Studio本身的目录结构就很奇怪

Ctrl + B

生成一下项目,可以看到该

Project1

项目生成了一个

Project.exe

可执行文件
这个项目生成的exe文件居然在解决方案下的x64里面,而不是项目的x64下
在这里插入图片描述
也就是说,若有多个项目,生成的exe文件都会在解决方案下的x64文件夹下
在这里插入图片描述
而每个项目对应生成的中间文件却都在对应项目的x64文件夹下
在这里插入图片描述

其实这个exe和中间文件都应该分别在对应的项目下才更加符合人性,个人看法哈
Cherno的做法是:exe和中间文件都放在对应项目的bin文件夹下
exe应该输出在对应项目的bin文件夹下的x64文件夹下
中间文件应该输出在对应项目的bin文件夹下的intermediates文件夹下

在这里插入图片描述
输出目录就是项目的exe(或者dll)所在路径,中间目录就是一些没啥太大作用的中间文件而已(汇编、二进制文件等)

在配置属性下的常规中可以自定义输出目录和中间目录
在这里插入图片描述

可以看到这些都是宏定义的,点击编辑
在这里插入图片描述
点击,可以查看全部的宏
在这里插入图片描述
可以看到宏对应的路径,注意有的宏自带反斜杠

\

,拼接的时候要留意
在这里插入图片描述

若要实现上述讲的配置(EV寒霜引擎Cherno同款配置),复制这两个即可
输出目录:

$(SolutionDir)bin\$(Platform)\$(Configuration)\

中间目录:

$(SolutionDir)bin\intermediates\$(Platform)\$(Configuration)\

在这里插入图片描述
再次运行项目
exe文件所在路径
在这里插入图片描述
中间文件所在路径
在这里插入图片描述

四、Visual Studio 常用快捷键

我使用的是默认的Visual Studio快捷键,列出一些我常用的快捷键
功能快捷键编译(生成obj文件)Ctrl + F7生成(链接成exe可执行文件)Ctrl + B运行(编译+生成)F5Debug运行F10Debug下F10逐过程(不进函数,只拿函数处理后的结果)Debug下F11逐语句(进入函数)Debug下Shift + F11跳到下一个断点;跳出函数右击项目再按A设置该项目为启动项点一下所选中的项目,按Alt + Enter打开该项目的属性Ctrl + K + O同名的.cpp和.h切换Ctrl + M + L折叠/展开函数Ctrl + K + C注释所选行Ctrl + K + U取消所选行注释F3查找下一个Esc快速关闭查找等小窗口

这才写了一丢丢,还有很多东西想写,奈何太累了,太累了,想休息,有空再补充吧~~~
标签: 1024程序员节

本文转载自: https://blog.csdn.net/qq_41264055/article/details/143217292
版权归原作者 beyond谚语 所有, 如有侵权,请联系我们删除。

“Visual Studio 2022工作原理及相关配置参数(干货满满)——C++”的评论:

还没有评论