搭建环境做一个一个备忘
为临时需要再搭建环境时做一个一个备忘
记得先切换电脑自带的快捷键,如切换语言标点
c++类型
关于GCC
C++11
完全支持
从GCC4.8.1版本完全支持
-std=c++11 or std=gnu++11
C++14
完全支持
从GCC6.1版本开始完全支持,从6.1-10(包括)的默认模式
-std=c++14 or std=gnu++14
C++17
完全支持
从GCC 5版本开始支持,到GCC 7版本已完全支持,是GCC 11到13版本的默认模式
-std=c++17 or std=gnu++17
C++17
完全支持
从GCC 5版本开始支持,到GCC 7版本已完全支持,是GCC 11到13版本的默认模式
-std=c++17 or std=gnu++17
C++20
未完全支持
从GCC 8版本开始支持
-std=c++20 or
std=gnu++20(GCC 9以及之前版本使用**-std=c++2a**)
CPH
抓取洛谷题目需要右键选取LuoguProblemParser
Devc
最高支持c++11标准
安装时按默认(包括语言),可改安装到那个盘
选择语言
在这里选择简体中文。
关于调试
工具->编译选项->代码生成优化->代码生成->语言标准(根据需要修改)
-> 代码性能->生成代码性能信息
->连接器->产生调试信息
工具->环境选项->鼠标查看变量值
有改动,重启都一定要先编译再调试
快捷键 F5 开始调试
快捷键 F6 停止调试
快捷键 F7 单步调试(运行下一步)
快捷键 F8 单步进入函数调试
如果你调试前设置查看的话,变量会**“Execute to evaluate”**
遇见 endl
会卡死!调试查看 STL 里面参数会卡死!
看stl去调试的话一定会卡死,只能打印出来,或者(赋值给一个变量,查看变量)(注意取消鼠标看变量)
自动整理代码
按下Ctrl+Shift+A整理
调整界面风格
工具 -> 编辑器选项 -> 基本 ->去掉高亮显示当前行的√
-> 语法->预设->obsidian
手动补全(自己用过的变量)
打开工具 -> 快捷键选项,找到最下面的Show code completion,把快捷键改成别的 (我选择的是Ctrl+Enter,就是选中你要更改的那项,然后直接按下你想要的组合键,自动就改了),然后确定后退出。
它只能提示出它已经缓存好了的头文件的内容,(不如去查api文档)如果你在安装的时候只缓存了常用头文件的话, 你包含
以下为收集的一些可以提示和不可以提示的总结:
已经写上的头文件里面的函数
函数形参列表
你定义的变量、函数名
对象实例的方法、构造方法
宏定义
看上去可以,实际上不能提示的有一些,但不限于:
语言保留字(一些关键字),比如break、return、continue、sizeof、malloc……
头文件(就是#include后不能像visual studio一样出现一些头文件的提示)
预处理语句
如果你想让它提示保留字出来的话,你可以这样解决,那就是写这么一个宏定义(以continue为例):
#define continue continue
然后continue就能被作为一个宏而提示出来了,但是完全没必要
小熊猫devc
配置及使用
**ctrl+R(非H) **替换(蓝块为当前)
可以自行调整各栏间距以方便观察
F10无功能
F11为编译并运行(如果有改动会编译,挺智能的)
F12全部重编译(改动编译器设置时必须用)
数据集
自带类似cph插件,在下栏试题处,添加即可
编译完确认好是报错还是警告
调试(可能需要多按几次换行,所以最好输入时就自带)
如果要调试必须把输入输出优化先注释掉,不然不会提前出结果.
调试窗口会吞复制内容,必须再次复制才行
ctrl+F5 执行到光标处(中间有断点就暂停)
F6 停止调试
单步执行
顾名思义,单步执行就是让程序执行一步后暂停。问题在于,到底多少程序算”一步“?在小熊猫C++的运行菜单中,有这么几种单步执行:
- 单步跳过F8:一行程序算一步。执行完当前行后暂停。
- 单步进入F7:如果当前行不包含函数调用,则一行程序算一步;如果这行程序中包含对函数的调用,会在进入函数后暂停;如果找不到该函数的符号信息,则在执行完该函数后暂停。
- 单步跳出ctrl+F8:退出当前函数后暂停。
继续执行F4
程序暂停后,通过”运行“菜单或者调试工具栏选择”继续执行”,程序就会继续以调试方式运行,直到遇到下一个断点(包括在循环内再次遇到自己这行),或者程序运行结束为止。
监视变量
如果变量在当前作用域无效会直接无,尽量开全局看全局,但若同名也只优先显示当前作用域的值
添加完之后改不了名字,但是双击可以修改其值
*(a+3)@10监视数组部分(注意下标也会随+3变化)
下方栏调试-局部变量可自动看当前函数作用域中的所有局部变量(包括函数参数)
gdb(小熊猫C++使用的调试器)支持监视任何合法的C、C++表达式(包括函数,这样递归函数时方便直接看返回值了)。但请保证在表达式中不会出现无穷递归、无限循环等错误,否则gdb调试器会卡死无法正常使用。
调用栈视图
我们按照自顶向下或者模块化的思路设计程序时,会以函数为单位来组织和实现的程序的功能。在调试程序时,我们经常需要知道,函数现在正被谁调用?调用者的状态是怎样的?
调试面板中的调用栈视图为我们提供了程序调用栈(Call Stack)的信息。从下图中我们可以看出,当前程序执行到isPrime函数中,它是在main函数的第30行被调用的。
在调用栈视图中双击某一行,小熊猫C++就会自动跳转到对应的程序位置。
求值工具
除了监视和局部变量之外,我们还可以使用求值工具来快速计算某个表达式。
注意,求值工具可以执行任意合法的C/C++表达式,包括赋值表达式!其效果和在程序中执行该表达式的作用是相同的(别冲突了)。例如,我们在求值输入框中输入n=500,就可以将变量n的值改为500。
输入重定向
打开gdb server调试模式
调试的数据重定向功能需要打开gdb server调试模式。从“工具”菜单“选项”打开“选项”对话框,在“调试器”->“通用”选项页中可以找到“使用gdb server调试“选项,将其勾选上,然后确定即可。
指定数据文件(从而可以直接只看输出)
通过工具栏或者**”运行“菜单中的”运行参数…“按钮,打开”运行参数“选项页**
在选项页中,勾选”将程序的标准输入重定向到下面的文件“,并选择数据所在的文件(本例中使用F盘根目录下的test.txt文件,即F:\test.txt作为输入文件),然后确定即可。