VS2019 for C++ 环境安装与解惑

写在前面

初学C++,相信很多同学在第一次敲键盘写程序时,都会选择在自己的电脑上安装一个课本推荐的Visual Studio(以下简称VS)。然而VS是一个支持多种编程语言、成熟但庞大的集成开发环境(IDE),我们该怎样在有着多种选择的的安装包中,正确选择自己所需要的配置呢?本期推送将为你打开VS的大门,让编程触手可及。

安装须知

  1. 编程要装什么软件?都有什么区别?

    编程者们要先在编辑器上写出程序,再通过编译器。

    编译器编译完,高级语言变为汇编语言,.h文件和.c文件变为.a文件,即汇编文件。

    汇编器汇编完,生成.o文件,通过链接器用链接库做链接,最终变成a.out文件(Linux中)和a.exe文件(Windows中)。即变成电脑能够识别的二进制文件

    大功告成。但总归是有些麻烦,写一个程序要使用四个工具,有没有什么办法能让它们合到一起呢?

    于是我们就有了集成开发环境(IDE)

    集成开发环境,一般包括代码编辑器、编译器、调试器和图形用户界面工具。我们本期要讨论的VS就是IDE的一种,还有许多好用的C++IDE,比如Dev C++和Eclipse。

    对于初学者来说,使用IDE,能让我们专注于编程语言和编程本身

  2. 相对于其他工具,VS具有如下优点

    ① 标准化程度相对较高;② 文档齐全,可脱机查看;③ 代码编辑器对关键字、预处理指令、头文件、函数调用等能提示补全,可静态语法查错、静态编译、类型推导等;④ 编译连接错误信息是中文,适合初学者;⑤ 调试功能强大。

    但也有如下缺点① 安装文件庞大,且安装过程较慢;② 直接打开源文件后不能编译或自动创建项目,要先创建项目再加入源文件。

开始安装

学校机房安装的一般都是VS2010或者VC++6.0。为了能够支持C++11的使用需求,兼顾大家的编程体验(下载花里胡哨的插件),在这里只讨论VS2019(个人版)的安装。

首先,我们去到VS官方网站,下载Community2019版本(个人版),因为专业版和企业版都很贵。

经过很长很长的时间,我们终于进入了这个页面:

img

如果你只是想在VS2019上写C++程序,这样选择基本就可以了。

如果你想更改安装位置,切记下图这三个安装位置不能放在一个文件夹内。

img

接下来就是漫长的下载安装过程了,请耐心等待,安装过程中不要断网。

安装完成后,我们打开VS2019,选择创建新项目

如果出现了下图所示的空项目模板,就说明我们的安装告一段落,可以成功创建一个C++空项目了。

在这里插入图片描述

当然,凡事总有意外,如果你没有找到空项目这个选项,可以随意选择一个模板先进入VS2019,再在【工具】——【获取工具和功能】的选项里面,看到你熟悉的选择工作负载的窗口。这时,选择正确的工作负载和组件就好啦。

VS管理项目的逻辑

考计算机二级的时候,有一种题目叫做程序设计题。对于填空改错题,编译后没运行,只要正确,会给分的; 但是程序设计题,必须生成可执行文件.exe。换言之,只要没有运行你的程序设计题,就算程序对了也是白做。每年很多人都会因为这种情况而追悔莫及。

那为什么大家都不运行呢?

正说明大家对VS管理项目的逻辑不熟悉。

当你进入你所创建的空项目后,VS界面左边是解决方案资源管理器。一个解决方案可包含一个或多个项目。一个项目可包含一个或多个源文件(.cpp),并产生一个与项目同名的可执行程序(.exe)。

注意VS不能先打开源文件再启动构建,要求先创建或打开一个项目,再加入源文件,然后才能构建。建议先创建一个空项目并做配置,以后每次都先打开该项目,然后再添加或移除源文件。建立一个源文件模板也能提高效率。

我们平时都是基于自己创建的新项目来写程序、运行程序的。如果你直接双击打开.cpp文件,并且没有依赖于任何项目,是没办法编译的。这时会发现运行键是灰色的,按Ctrl+f5当然也不会有反应。

建议遇到这种情况直接关闭窗口,在同一个文件夹下找到.sln文件,这正是你需要的解决方案文件。

使用中常见问题

  1. 我运行程序的黑窗口总是闪退,怎么办?

    如果是首次创建项目,应设置项目属性为控制台交互,否则就要在return之前添加system(“pause”);

    设置方法如下:

    • 打开项目,选择菜单“项目”→“项目属性”;

    • 选择“配置属性”→“链接器”→“系统”;

    • 选择“子系统”,默认为空,点击“下拉选项”,选择“控制台(/SUBSYSTEM:CONSOLE)”,点击“确定”。

  2. 程序中scanf不能编译,出现C4996错误,怎么办?

    由于微软在VS中不建议再使用C的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误。
    VS建议采用带_s的函数,如scanf_s、strcpy_s,但这些并不是标准C函数。

    第一种方法:点击“属性”,选择C/C++,找到SDL检测,将其改为否。

    第二种方法:在代码中加入

    1
    2
    3
    #define _CRT_SECURE_NO_WARNINGS     //这个宏定义最好要放到.cpp文件的第一行
    #pragma warning(disable:4996)
    // 二选一

    第三种方法:直接添加到预处理器中:

    img

    第四种方法:C/C++——代码生成——安全检查——改为禁用安全检查。

建议同学们在遇到问题时善用搜索,复制错误代码直接去CSDN寻找解决方案。