当前位置: 首页 > news >正文

【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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 软件测试——测试用例
  • 【C++精华铺】12.STL list模拟实现
  • 【低照度图像增强系列(8)】URetinex-Net算法详解与代码实现(2022|CVPR)
  • 手机和电脑通过TCP传输(一)
  • 第一节Linux常见指令
  • CV11_模型部署pytorch转ONNX
  • 前端练习小项目——方向感应名片
  • Open-TeleVision——通过VR沉浸式感受人形机器人视野:兼备远程控制和深度感知能力
  • Base64文件流查看下载PDF方法-CSDN
  • python-矩阵加法(赛氪OJ)
  • BERT架构的深入解析
  • c# 依赖注入-服务的生命周期
  • 如何恢复电脑上删除的文件?快速恢复被删除文件的技巧【5个实用方法】
  • css的三大特性
  • MATLAB quiver矢量图 设置colorbar
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [数据结构]链表的实现在PHP中
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2017-09-12 前端日报
  • Android开源项目规范总结
  • Angular Elements 及其运作原理
  • CSS 专业技巧
  • ES6核心特性
  • Hibernate最全面试题
  • interface和setter,getter
  • jdbc就是这么简单
  • Js基础知识(一) - 变量
  • js算法-归并排序(merge_sort)
  • Lsb图片隐写
  • npx命令介绍
  • Python语法速览与机器学习开发环境搭建
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 后端_MYSQL
  • 浏览器缓存机制分析
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 数组大概知多少
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一些css基础学习笔记
  • 用jquery写贪吃蛇
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # 数仓建模:如何构建主题宽表模型?
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • (152)时序收敛--->(02)时序收敛二
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (c语言)strcpy函数用法
  • (PADS学习)第二章:原理图绘制 第一部分
  • (第一天)包装对象、作用域、创建对象
  • (二)windows配置JDK环境
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转载)跟我一起学习VIM - The Life Changing Editor