【Visual Studio】Visual Studio使用技巧及报错解决合集

目录

目录

一.概述

二.Visual Studio报错问题及解决方法

三.Visual Studio操作过程中遇到的问题及解决方法

四.Visual Studio编译优化选项

五.Visual Studio快捷键


一.概述

持续更新Visual Studio报错及解决方法,包括Visual Studio报错问题及解决方法、Visual Studio操作过程中遇到的问题及解决方法、Visual Studio编译优化选项、Visual Studio快捷键等内容


二.Visual Studio报错问题及解决方法

Visual Studio报错:error LNK2001

问题 : error LNK2001无法解析的外部符号

方法 : 检查类中的静态变量,是否在类外定义或初始化


Visual Studio报错:error C2061

问题:error C2061:“xxx”:本地函数定义是非法的

方法 : 

        1.一般这种情况会伴随着该文件有乱码出现,需要将编码方式修改为utf-8。

        2.或者检查大括号是否匹配,可能存在丢失大括号的问题。


Visual Studio报错:error C1075

问题:error C1075:与左侧的大括号“{”匹配之前遇到文件结束

方法 : 

        1.首先检查大括号是否缺失

        2.如果不存在大括号缺失的情况,同时编译警告⚠出现这样一句提示:

warning C4819:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode格式以防止数据丢失

通常还会伴随error C2061错误,本地函数定义是非法的。

这时候的问题出现在文件编码上,可以看一下注释中的汉字是否乱码,调整编码为utf-8,或者对应正常显示中文的GBK编码就可以通过编译。


Visual Studio报错:error C4430

问题:报错内容error C4430

方法 : 属性->C/C++->高级->禁用特定警告,输入4430


Visual Studio报错error C3867

问题:

        #include <iostream>

        #include <typeinfo>

        …

        std::cout<<typeid(a).name<<std::endl;

        执行以上语句报错error C3867:…

方法 : 方法调用加一个括号,使用typeid(a).name()


Visual Studio报错error  C2872

问题:error  C2872 不明确符号

方法:

    1.函数库未正确加载,使用using namespace std;等

    2.注意预处理器对宏的加载项,可以在vs-右键项目属性-C/C++-预处理器-预处理器定义,中把相应的宏补充进去


三.Visual Studio操作过程中遇到的问题及解决方法

Visual Studio如何显示行号

工具-->选项-->文本编辑器-->所有语言-->常规-->行号(勾选)

Visual Studio窗口中cout输出显示不全解决办法

问题:

如图,发现打印1000行,但是只显示了100行,前面的数据都看不到,有时候调试打印输出时需要看一下输出的结果,但是看不全。

方法:

右键输出黑框的头部标题栏,然后点击属性,在布局中,屏幕缓冲区大小,修改高度数值,可以修改成大一点的数字,这样cout就能显示完整了,同时还可以设置字体,包括字体样式,字体大小,还有颜色等。


四.Visual Studio编译优化选项

在Visual Studio中,编译优化选项是用于提高程序性能的重要工具。编译器提供了多种优化级别和选项,可以根据不同的需要进行选择。

在Visual Studio开发环境中,可以通过项目的属性页设置编译优化选项。选择“配置属性”>“C/C++”>“优化”属性页面,然后修改“优化”属性来启用或配置不同的优化选项。

以下是一些常见的编译优化选项:

/O1 和 /O2

  • /O1 选项优化速度,但不是所有优化都启用。

  • /O2 选项进一步优化速度,启用更多的优化选项,如内联函数、循环展开等。

/Ox

  • /Ox 是一种编译器选项,它启用了 /O2 支持的速度优化选项的子集,但不包括 /O1/O2 中的 /GF(消除重复字符串)和 /Gy(启用函数级链接)选项。

内联函数

  • 使用 inline 关键字或编译器选项(如 -finline-functions)可以提示编译器内联函数,减少函数调用的开销。

虚函数优化

  • 编译器选项 -fdevirtualize 尝试将虚函数调用转换为直接调用,以减少虚函数调用的开销。

代码重排

  • 选项如 -freorder-blocks-freorder-functions 允许编译器重新排列代码块或函数,以提高代码的局部性和执行效率。

循环优化

  • 编译器提供了多种循环优化选项,如 -floop-unroll-and-jam(循环展开和合并)和 -floop-parallelize-all(循环并行化)。

链接时间优化

  • 使用 /GL(全程序优化)编译器选项和 /LTCG(链接时间代码生成)链接器选项可以在链接时进行进一步的优化。

代码分割

  • 使用 -ffunction-sections-fdata-sections 可以将代码和数据分割到不同的段中,有助于减少内存占用和提高加载效率。

数学优化

  • 选项如 -ffast-math 允许编译器使用更快但可能不够精确的数学运算。

其他优化选项

  • 还有许多其他优化选项,如 -funroll-loops(循环展开)、-finline-limit(内联函数大小限制)等,可以根据具体情况选择使用。

五.Visual Studio快捷键

  1. 文件操作

    • 新建文件:Ctrl + N 10
    • 打开文件:Ctrl + O 101213
    • 保存所有:Ctrl + Shift + S 11
  2. 编辑操作

    • 注释选定内容:Ctrl + K, Ctrl + C 1015
    • 取消注释选定内容:Ctrl + K, Ctrl + U 1015
    • 复制:Ctrl + C
    • 剪切:Ctrl + X
    • 粘贴:Ctrl + V
  3. 代码导航

    • 转到定义:F12 1213
    • 查找所有引用:Shift + F12 11
    • 列出成员:Ctrl + J 或 Alt + J 10
  4. 调试操作

    • 开始调试:F5 1015
    • 逐语句执行:F11 15
    • 逐过程执行:F10 15
    • 停止调试:Shift + F5 1115
    • 设置或删除断点:F9 1115
  5. 视图操作

    • 解决方案资源管理器:Ctrl + Alt + L 11
    • 属性窗口:F4 1012
  6. 代码生成

    • 生成解决方案:Ctrl + Shift + B 101115
    • 重新生成解决方案或项目:Ctrl + E 10
  7. 窗口操作

    • 关闭当前文档:Ctrl + W 10
    • 切换标题/代码文件:F4 10
  8. 其他

    • 格式化选定内容:Ctrl + K, Ctrl + F 10
    • 删除一行:Ctrl + D 10
    • 停止调试:Ctrl + Q 10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/800710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mac安装win10到外接固态硬盘

1、制作win10系统 1.1 下载 winToUSB&#xff0c;打开后选择第一个 1.2 选择本地下载镜像&#xff0c; 我用的分区方案是适用于UEFI的GPT模式 1.3 点右下角执行&#xff0c;等待执行完成即可 2、mac系统下载win驱动 2.1 comman空格 搜索启动转换助理&#xff0c;打开后选择…

Ubuntu 22.04.4 LTS (linux) 安装certbot 免费ssl证书申请 letsencrypt

1 安装certbot sudo apt update sudo apt-get install certbot 2 申请letsencrypt证书 sudo certbot certonly --webroot -w 网站目录 -d daloradius.域名.com 3 修改nginx 配置ssl 证书 # 配置服务器证书 ssl_certificate /etc/letsencrypt/live/daloradius.域名.com/f…

浅谈后置处理器之正则表达式提取器

浅谈后置处理器之正则表达式提取器 JMeter是一款功能强大的开源负载测试工具&#xff0c;广泛应用于Web应用、数据库等的性能测试。在进行接口测试或负载测试时&#xff0c;经常需要从服务器响应中提取某些数据作为后续请求的参数。这时&#xff0c;“正则表达式提取器”&…

Web开发:<br>标签的作用

br作用 介绍基本用法常见用途注意事项使用CSS替代 介绍 在Web开发中&#xff0c;<br> 标签是一个用于插入换行符的HTML标签。它是“break”的缩写&#xff0c;常用于需要在文本中强制换行的地方。<br> 标签是一个空标签&#xff0c;这意味着它没有结束标签。 基本…

HTML+CSS+JS用户管理(可储存用户数据)

使用cookies记录账号密码信息&#xff0c;可以注册、登录、注销账号。 点赞❤️收藏⭐️关注&#x1f60d; 效果图 源代码在效果图后面 源代码 HTML <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <…

无人机图像目标检测

本仓库是人工智能课程的课程作业仓库&#xff0c;主要是完成无人机图像目标检测的任务&#xff0c;我们对visdrone数据集进行了处理&#xff0c;在yolo和ssd两种框架下进行了训练和测试&#xff0c;并编写demo用于实时的无人机图像目标检测。 requirements依赖&#xff1a; ss…

OpenGL笔记一之基础窗体搭建以及事件响应

OpenGL笔记一之基础窗体搭建以及事件响应 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记一之基础窗体搭建以及事件响应1.运行2.目录结构3.main.cpp4.CMakeList.txt 1.运行 2.目录结构 01_GLFW_WINDOW/ ├── CMakeLists.txt ├── glad.c ├── ma…

效能工具:执行 npm start 可直接切换proxy代理UR后直接启动项目

1) 背景: 我们项目是2个前端3个后端的配置。前端和每个后端都有需要调试的接口。 因此经常切换vite.congig.js中的proxy后端代理链接&#xff0c;是挺麻烦的。 于是我研究如何能快速切换后端URL&#xff0c;所幸懒人有懒福&#xff0c;我找到了Inquirer 和 fs&#xff0c; 实…

MySQL NaviCat 安装及配置教程(Windows)【安装】

文章目录 一、 MySQL 下载1. 官网下载2. 其它渠道 二、 MySQL 安装三、 MySQL 验证及配置四、 NaviCat 下载1. 官网下载2. 其它渠道 五、 NaviCat 安装六、 NaviCat 激活 软件 / 环境安装及配置目录 一、 MySQL 下载 1. 官网下载 安装地址&#xff1a;https://www.mysql.com/…

人员定位管理系统有怎样优势?这4点不可忽视

众所周知&#xff0c;人员定位管理系统是通过物联网和云计算等技术&#xff0c;记录所有员工的基本信息&#xff0c;将员工位置、工作情况、运动轨迹等信息上传给系统&#xff0c;全面记录和直观的展现厂区内所有工作人员的具体情况。 除了能够查看人员位置情况外&#xff0c;人…

【C++题解】1168. 歌唱比赛评分

问题&#xff1a;1168. 歌唱比赛评分 类型&#xff1a;数组找数 题目描述&#xff1a; 四&#xff08;1&#xff09; 班要举行一次歌唱比赛&#xff0c;以选拔更好的苗子参加校的歌唱比赛。评分办法如下&#xff1a;设 N 个评委&#xff0c;打 N 个分数&#xff08; 0≤每个分…

分手后失眠之夜:如何安放那颗无处安放的心

在人生的旅途中&#xff0c;我们总会遇到一些人&#xff0c;他们像流星般划过天际&#xff0c;给我们带来瞬间的绚烂&#xff0c;却也留下了长久的寂寥。当感情走到尽头&#xff0c;分手成为无法回避的现实&#xff0c;你是否也曾躺在床上&#xff0c;辗转反侧&#xff0c;难以…

实战篇(九):解锁3D魔方的秘密:用Processing编程实现交互式魔方

解锁3D魔方的秘密:用Processing编程实现交互式魔方 使用 Processing 创建一个 3D 魔方效果展示1. 安装 Processing2. 项目结构3. 代码实现4. 代码解释4.1. 初始化魔方4.2. 绘制魔方4.3. 处理鼠标事件4.4. 检查点击的面4.5. 旋转面和最终确定旋转5. 运行和测试6. 细节解释6.1. …

等级保护测评(三级)主机linux测评指导书

等级保护测评指导书分技术&#xff08;物理安全、主机安全、网络安全、应用安全、数据安全&#xff09; 和管理&#xff08;安全管理制度、安全管理机构、人员安全管理、系统建设管理、系统运维管理&#xff09;两大块。 今天给大家分享一下&#xff0c;等级保护测评&#xff0…

Python数据可视化库之bashplotlib使用详解

概要 在数据分析和科学计算领域,数据可视化是一个不可或缺的环节。传统的图形化数据可视化工具如 Matplotlib、Seaborn 等,虽然功能强大,但有时在命令行环境下使用并不方便。Bashplotlib 是一个轻量级的 Python 库,旨在简化命令行环境下的数据可视化操作。它允许用户在命令…

TS 入门(三):Typescript函数与对象类型

目录 前言回顾1. 函数类型a. 基本函数类型b. 可选参数和默认参数c. 剩余参数 2. 对象类型a. 基本对象类型b. 可选属性和只读属性 3. 类型别名和接口a. 类型别名b. 接口扩展 4. 类型推断和上下文类型a. 类型推断b. 上下文类型 扩展知识点&#xff1a;函数重载结语 前言 在前两章…

Floyd算法——AcWing 343. 排序

目录 Floyd算法 定义 运用情况 注意事项 解题思路 基本步骤 AcWing 343. 排序 题目描述 运行代码 代码思路 改进思路 Floyd算法 定义 Floyd算法&#xff0c;全称Floyd-Warshall算法&#xff0c;是一种用于解决图中所有顶点对之间的最短路径问题的动态规划算法。…

【Memcached】Memcached的工作原理

目录 ​编辑 第2章&#xff1a;Memcached工作原理 2.1 数据存储与访问 2.2 分布式架构 2.3 数据过期机制 第2章&#xff1a;Memcached工作原理 2.1 数据存储与访问 Memcached是一种键值存储系统&#xff0c;其中数据以键值对的形式存储。键是用于定位数据的唯一标识符&am…

13 IP层协议-网际控制报文协议ICMP

计算机网络资料下载&#xff1a;CSDNhttps://mp.csdn.net/mp_blog/creation/editor/140148186 为了更有效的转发IP数据报和提高交付成果的机会&#xff0c;在网际层使用了网际控制报文协议ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP不是高层协议数…

【系统架构设计师】十一、系统架构设计(层次架构风格|MVC|面向服务的架构风格|ESB)

目录 五、层次架构风格 5.1 两层C/S架构 5.2 三层C/S架构 5.3 三层B/S架构 5.4 MVC架构 5.5 MVP架构 5.6 MVVM架构 六、面向服务的架构风格 6.1 SOA特征 6.2 Web Service 6.2.1 关键技术 6.2.2 WEB Service 6.3 企业服务总线ESB 相关推荐 历年真题练习 五、层次…