【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操作过程中遇到的问题及解决方法、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
相关推荐
VernonJsn44 分钟前
visual studio 2005的MFC各种线程函数之间的调用关系
ide·mfc·visual studio
戎梓漩1 小时前
windows下安装curl,并集成到visual studio
ide·windows·visual studio
蓝田~3 小时前
观察者模式和订阅模式
windows·观察者模式
热爱生活的五柒5 小时前
vscode利用ofExtensions插件可以调试单进程Openfoam,但是不能调试mpi多进程案例
ide·vscode·编辑器
界面开发小八哥5 小时前
更高效的Java 23开发,IntelliJ IDEA助力全面升级
java·开发语言·ide·intellij-idea·开发工具
梓仁沐白9 小时前
ubuntu+windows双系统切换后蓝牙设备无法连接
windows·ubuntu
九鼎科技-Leo13 小时前
什么是 WPF 中的依赖属性?有什么作用?
windows·c#·.net·wpf
小江村儿的文杰14 小时前
XCode Build时遇到 .entitlements could not be opened 的问题
ide·macos·ue4·xcode
为什么每天的风都这么大14 小时前
Vscode/Code-server无网环境安装通义灵码
ide·vscode·阿里云·编辑器·ai编程·code-server
Yang.9916 小时前
基于Windows系统用C++做一个点名工具
c++·windows·sql·visual studio code·sqlite3