在Visual Studio上开启自己的C++学习之旅

2023-11-17

目录

0、引言:

1、本教程使用到的相关软件或产品: 

2、下载及安装Visual Studio:  

2.1、创建符号链接: 

2.2、安装Visual Studio: 

2.2.1、补充:

3、创建并运行自己的第一个C++程序: 


0、引言:

        在学习一门编程语言之前,选择一款合适的编辑器与编译器是十分重要的事情。发展到现在,C++的主流编译器已经十分强大与完善了。现列举比较常用的一些:

  • GCC(GNU Compiler Collection GNU编译器套件)由GNU开发的类Unix操作系统上的编程语言编译器,从最开始仅支持编译C语言发展至今已经支持C++、Fortran、Pascal、Ada、Java、Objective-C、Objective-C++(并非一门单独的编程语言,而是指Objective-C和C++混用编程)、Go以及各类处理器架构上的汇编语言等多种语言的编译了。

官方网站:点这里

Windows移植版本:MinGWTDM-GCCCygwin

        对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器。值得一提的是,实际使用中我们更习惯使用 gcc 指令编译 C 语言程序,用 g++ 指令编译 C++ 程序。需要强调的一点是,这并不是 gcc 和 g++ 的区别,gcc 指令也可以用来编译 C++ 程序,同样 g++ 指令也可以用于编译 C 语言程序。 

  • LLVM ClangClang是一个由Apple主导、采用C++编写、基于LLVM、发布于LLVM BSD许可证下的的C/C++/Objective-C/Objective-C++编译器,在FreeBSD、macOS等系统中广泛使用。它与GNU C语言规范几乎完全兼容,并在此基础上增加了额外的语法特性,其目标(之一)就是超越GCC。

LLVM官方网站:点这里 

Clang官方网站:点这里

  • MSVC(MicroSoft Visual C++)由微软开发,仅能用于Windows操作系统的C++编译器(也支持C)。

        综上所述: MSVC 通常用于编译Windows应用,而 GCC / Clang 则可以用来编译Windows/Linux/MacOS等所有平台的应用。 

        针对初学者,往往更推荐使用集成开发环境(IDE,Integrated Development Environment),比如Visual StudioDev-C++EclipseIntellij IDEA(Java IDE)等。本文主要介绍在Windows平台下下载安装Visual Studio并创建自己的第一个C++程序。        

1、本教程使用到的相关软件或产品: 

  1. Windows 10 专业版        10.0.19044
  2. Visual Studio Installer        3.3.2182.10694
  3. Visual Studio Community 2022 - 17.3.5

  

2、下载及安装Visual Studio:  

  • 首先前往Visual Studio的官网,在首页找到"下载 Visual Studio"下拉菜单选择"Community 2022"下载可免费使用的社区版。

        在安装之前需要注意的是:Visual Studio是一款强大但十分“臃肿”的IDE(安装所有的工作负荷大概会占用四十几个GB)。软件默认安装路径在C盘,如果硬盘空间足够可直接安装,但对于系统盘空间不是很富裕的同学,推荐使用mklink命令将其安装到非系统盘:

(该段参考自Visual Studio 2022安装到非C盘完全指南https://blog.csdn.net/qq_37444533/article/details/121401284) 

        mklink是 Windows 下用于创建符号链接的工具,存在于 Windows Vista 及以后版本的Windows操作系统中。使用方式:

MKLINK [[/D] | [/H] | [/J]] 链接名称 目标

说明:

/D 创建目录符号链接而不是文件符号链接(默认为文件符号链接)

/H 创建硬链接而不是符号链接

/J 创建目录连接点

链接名称 指定新的符号链接名称

目标 指定新链接引用的路径(绝对路径或者相对路径均可)

2.1、创建符号链接: 

  • 在非系统盘(笔者使用的D盘)新建一个"Visual Studio"文件夹,在文件夹内再新建这些文件夹: 
    • "Microsoft SDKs"、"Microsoft SDKs x64";
    • "Microsoft Visual Studio"、"Microsoft Visual Studio x64";
    • "Package Cache"、"VisualStudio";
    • "Windows Kits"、"Windows Kits x64"; 
  • 建完之后如下图所示: 

  • 随后在Windows桌面左下角搜索栏搜索"cmd",点击"以管理员身份运行"(必须以管理员身份运行):

  • 依次输入下方命令并执行(复制一行进cmd ==> 按下"Enter"执行一行 ==> 复制下一行···):
    mklink /D "C:\Program Files (x86)\Microsoft SDKs" "D:\Visual Studio\Microsoft SDKs" 
    mklink /D "C:\Program Files (x86)\Microsoft Visual Studio" "D:\Visual Studio\Microsoft Visual Studio" 
    mklink /D "C:\Program Files (x86)\Windows Kits" "D:\Visual Studio\Windows Kits" 
    mklink /D "C:\Program Files\Microsoft SDKs" "D:\Visual Studio\Microsoft SDKs x64" 
    mklink /D "C:\Program Files\Microsoft Visual Studio" "D:\Visual Studio\Microsoft Visual Studio x64" 
    mklink /D "C:\Program Files\Windows Kits" "D:\Visual Studio\Windows Kits x64" 
    mklink /D "C:\ProgramData\Microsoft\VisualStudio" "D:\Visual Studio\VisualStudio" 
    mklink /D "C:\ProgramData\Package Cache" "D:\Visual Studio\Package Cache"
    
    (注意:创建Package Cache的链接时可能会因为目录已存在而报错,可以把已存在的文件夹删了(这个文件夹是存放缓存的一般情况下删了也没事)然后再执行一遍那条命令。比如下面这样:)
    • 我们打开"文件管理器",进入C盘根目录,在"查看"菜单栏中勾选"隐藏的项目":
    • 然后我们可以看到隐藏的文件夹"ProgramData",进入该文件夹找到"Package Cache"文件夹并删除:
    • 随后回到cmd重新执行一遍该命令即可,全部执行完后如下:
    • 符号链接全部创建完成后,我们可以关闭cmd了。 

2.2、安装Visual Studio: 

  • 回到正题,找到之前下载好的"VisualStudioSetup"双击运行:

  • 在弹出的对话框中选择"继续": ​  

  • 这时它会下载并安装"Visual Studio Installer",这是 Visual Studio 本体的安装程序,是我们管理 Visual Studio 工作负荷的重要工具。安装完毕后会自动打开Visual Studio Installer,打开后如下所示: 

  • 在"桌面应用和移动应用(5)"分类栏中选中"使用 C++ 的桌面开发"工作负荷,无需做任何修改直接点击"安装":

  • 随后会进入安装过程,整个过程大概持续10分钟。安装完成后会自动打开登陆界面,这个时候我们可以关掉Visual Studio Installer了:

安装前后内存空间对比

  • 在登陆界面我们选择"暂时跳过此项",随后根据个人喜好选择喜欢的颜色主题(开发设置保持默认),点击"启动 Visual Studio":

  • 安装流程到此就完成了! 

  • 另外喜欢电脑干净一点的同学可以去往VisualStudioSetup的下载位置删掉它,但别搞混了不是删除Visual Studio Installer,那个以后管理工作负荷还用得上:

2.2.1、补充

  • Visual Studio 不会在桌面自动创建快捷方式,我们有两种方式自行创建:
  1. 在开始菜单栏中找到 Visual Studio 2022 图标,直接拖动到桌面即可;
  2. 前往IDE安装目录找到应用程序,右击选择"发送到(N)==> "桌面快捷方式";使用符号链接的安装目录为:
    D:\Visual Studio\Microsoft Visual Studio x64\2022\Community\Common7\IDE\devenv.exe


  • 安装完毕之后,我们随时可以在开始菜单栏中找到 Visual Studio Installer ,运行后在打开的界面内点击"修改(M)"即可查看并管理本计算机上 Visual Studio 的工作负荷:

3、创建并运行自己的第一个C++程序: 

        大多数IDE(集成开发环境)要求在写程序之前一定要创建一个"project"(项目),这样方便根据工程属性,对代码进行管理,编译等;而有些IDE则没有这个要求(比如Dev-C++)。本次介绍的 Visual Studio 属于前者。 

  • 打开 Visual Studio ,选择"创建新项目(N)": 

  • 按下图过滤筛选后选中"空项目",点击"下一步(N)": 

  • 输入项目名称,项目位置可自己决定(推荐默认或者像图中在D:\Visual Studio新建"source" ==> "repos"然后指定该目录,注意自己指定的目录最好不要有中文,我没试过会不会出问题)勾选"将解决方案和项目放在同一目录中(D)"(一般放在同一目录下比较好管理),最后点击"创建(C)": 

  解决方案 Visual Studio 的一种容器。

       在.Net下,一个项目可以表现为多种类型,如控制台应用程序,Windows应用程序,类库(Class Library),Web应用程序,Web Service,Windows控件等等。如果经过编译,从扩展名来看,应用程序都会被编译为.exe文件,而其余的会被编译为.dll文件。
  形象地说,解决方案就是一个容器,在这个容器里,分成好多层,好多格,用来存放不同的项目。一个解决方案与项目是大于等于的关系。建立解决方案后,会建立一个扩展名为.sln的文件。
  所以一个系统有很多的子系统功能时,一个项目实现一个功能,这样解决方案就可以把所有的项目包含在内,实现所有的功能。

       简单来说:Visual Studio 解决方案可以只包含一个项目,也可以包含由开发小组联合生成的多个项目。复杂的应用程序甚至可能需要多个解决方案。 

  • 创建完成后如下图所示,其中经常使用的是"解决方案资源管理器"(默认开启,如果没有请前往"视图(V)==> "解决方案资源管理器(P)"打开: 

  • 解决方案资源管理器中右击项目名称或"源文件"筛选器,选择"添加(D)==> "新建项(W)": 

  • 在打开的窗口中选中"C++ 文件(.cpp)",修改文件名称为"main.cpp",点击"添加(A)": 

  • 添加完成后如下图所示:

  • 至此,我们已经新建完成自己的第一个C++项目了! 

新建完成后,将以下代码复制进main.cpp:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello World!" << endl;    

    return 0;
}

点击"调试(D)==> "开始执行(不调试)(H)":

运行结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Visual Studio上开启自己的C++学习之旅 的相关文章

随机推荐

  • 闲聊——集成学习理论(Adaboost,随机森林理论与个人实战中的体会)

    本文通过简单的例子来引出算法本质 同时附上证明过程 目的是让感觉直接看证明推导很难的小伙伴们也能理解集成算法是怎样实现的 集成学习通过构建并结合多个学习器来完成学习任务 可获得比单一学习器更好的泛化性能 目前的集成学习方法大致可分为两类 第
  • 程序员常用十大算法之KMP算法

    程序员常用十大算法之KMP算法 一 应用场景 二 暴力匹配算法 2 1思路分析 2 2代码实现 三 算法介绍 四 KMP算法最佳应用 4 1字符串匹配问题 4 2思路分析图解 代码实现 本文是程序员常用十大算法的第一节 后面的算法总结都在博
  • JSON 驼峰转下划线

    import com fasterxml jackson databind PropertyNamingStrategy PropertyNamingStrategyBase public class MyCamemlToUnderline
  • MAC DOCKER无法ping通容器解决方案

    原因 解决方案 原因 先来看下LINUX的docker架构 docker是在linux内核容器基础上实现的 linux安装docker后 会创建一个为docker0的虚拟网卡 linux宿机与docker容器之间的通信 通过docker0虚
  • 高三计算机教案,2017高三信息技术教学计划

    信息技术是一门操作性和实践性强的课程 应注重培养学生的动手操作实践能力 提高学生的学习兴趣 达到学习的目的 下面是学习啦小编带来关于2017高三信息技术教学计划的内容 希望能让大家有所收获 2017高三信息技术教学计划 一 一 基本情况 1
  • violate关键字---java高并发

    内存模型相关概念 计算机在执行程序时 每条指令都是在CPU中执行的 而执行指令过程中 势必涉及到数据的读取和写入 由于程序运行过程中的临时数据是存放在主存 物理内存 当中的 这时就存在一个问题 由于CPU执行速度很快 而从内存读取数据和向内
  • origin账户申请&&安装使用——画图软件

    账户申请 参考https my originlab com forum topic asp TOPIC ID 22328 学生半年免费版官方网站申请链接 用学校提供的以edu cn结尾的邮箱进行注册 https www originlab
  • const的用法

    const是一个关键字 加在变量前 将其声明为常量 简单来说 就是不希望该变量的值发生改变 因此 它必须在声明该变量时就赋初值 const与指针 如果const加在 符号前面 如 const int p a 或 int const p a
  • PHP性能优化--OPCache

    文章目录 前言 OPcache 介绍 启用 配置项说明 opcache preload预加载文件示例 删除缓存 可视化界面opcache gui 总结 参考资料 前言 随着业务的发展 性能优化成为了不可避免的课题 优化后的业务承载能力可以是
  • sh 脚本异常:/bin/sh^M:bad interpreter: No such file or directory

    权限不够 chmod x examples mnist bb sh 在 Linux 中执行 sh 脚本 异常 bin sh M bad interpreter No such file or directory 这是不同系统编码格式引起的
  • Spring不同类型的注入方式,p-namespace,c-namespace

    spring官网代码示例 1 不同类型的注入方式
  • 数据结构系列——链表linklist

    本期主题 数据结构之 链表 往期链接 数据结构系列 先进先出队列queue 数据结构系列 栈 stack 目录 1 链表定义 2 代码实现链表 1 链表定义 定义 链表由多个结点组成 结点不仅包含值 还包含到下一个结点的信息 所以通过这种方
  • 优惠券秒杀(二)

    原创 L1296686146 冗谪 2023 07 27 18 30 发表于陕西 收录于合集 redis7个 库存超卖问题分析 库存超卖问题其本质就是多个线程操作共享数据产生的线程安全问题 即当一个线程在执行操作共享数据的多条代码的过程中
  • 基于信号量的生产者-消费者

    信号量是进化版的互斥锁 互斥锁只能供一个线程使用 信号量可以供多个线程使用 如果希望在多个线程之间对某对象的部分数据共享 互斥锁无法实现 只能将整个数据锁住 这样导致线程并发性下降 信号量既能保持同步 数据又不混乱 又能提高线程并发 主要函
  • Qt

    Qt 信号和槽之间的连接与使用 重载信号和槽的连接 测试环境 Qt Creator 5 14 2 MinGW 7 3 1 信号和槽 在Qt中 QObject是所有的Qt类的基类 如果想要自己实现一个C 类 并且还需要支持信号和槽 那么需要在
  • 用java计算输入工资计算税收_标准作业

    课后作业 第一章 理论 1 java环境搭建的步骤 2 java语言的简介 3 手写代码实现个人信息的输出 姓名 性别 年龄 家庭地址 爱好 座右铭 上机 分别使用记事本和myeclipse编写java程序实现求学经历的输出并写好每行代码的
  • 医学图像的CT值与像素值总结及转换代码

    目录 一 CT图像的调窗 1 Window width 2 Window level center 二 DICOM文件中窗宽窗位对应字段 三 CT值与像素值转换 线性映射 1 itk snap软件和sitk代码示例 2 Mango软件和ni
  • 协议定制 + Json序列化反序列化

    文章目录 协议定制 Json序列化反序列化 1 再谈 协议 1 1 结构化数据 1 2 序列化和反序列化 2 网络版计算器 2 1 服务端 2 2 协议定制 1 网络发送和读取的正确理解 2 协议定制的问题 2 3 客户端 2 4 代码 3
  • Spring Boot + Vue的网上商城之基于用户的协同过滤的商品推荐实现

    Spring Boot Vue的网上商城之基于协同过滤的商品推荐实现 协同过滤算法设计思路 构建用户 商品评分矩阵 将用户的购买行为和评价记录转化为一个用户 商品评分矩阵 矩阵中的每个元素表示用户对商品的评分 计算用户之间的相似度 通过计算
  • 在Visual Studio上开启自己的C++学习之旅

    目录 0 引言 1 本教程使用到的相关软件或产品 2 下载及安装Visual Studio 2 1 创建符号链接 2 2 安装Visual Studio 2 2 1 补充 3 创建并运行自己的第一个C 程序 0 引言 在学习一门编程语言之前