目录
目录
三.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快捷键
文件操作:
- 新建文件:Ctrl + N 10
- 打开文件:Ctrl + O 101213
- 保存所有:Ctrl + Shift + S 11
编辑操作:
- 注释选定内容:Ctrl + K, Ctrl + C 1015
- 取消注释选定内容:Ctrl + K, Ctrl + U 1015
- 复制:Ctrl + C
- 剪切:Ctrl + X
- 粘贴:Ctrl + V
代码导航:
- 转到定义:F12 1213
- 查找所有引用:Shift + F12 11
- 列出成员:Ctrl + J 或 Alt + J 10
调试操作:
- 开始调试:F5 1015
- 逐语句执行:F11 15
- 逐过程执行:F10 15
- 停止调试:Shift + F5 1115
- 设置或删除断点:F9 1115
视图操作:
- 解决方案资源管理器:Ctrl + Alt + L 11
- 属性窗口:F4 1012
代码生成:
- 生成解决方案:Ctrl + Shift + B 101115
- 重新生成解决方案或项目:Ctrl + E 10
窗口操作:
- 关闭当前文档:Ctrl + W 10
- 切换标题/代码文件:F4 10
其他:
- 格式化选定内容:Ctrl + K, Ctrl + F 10
- 删除一行:Ctrl + D 10
- 停止调试:Ctrl + Q 10