为临时需要再搭建环境时做一个一个备忘

记得先切换电脑自带的快捷键,如切换语言标点

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行被调用的。

img

在调用栈视图中双击某一行,小熊猫C++就会自动跳转到对应的程序位置。

img

求值工具

除了监视和局部变量之外,我们还可以使用求值工具来快速计算某个表达式

img

注意,求值工具可以执行任意合法的C/C++表达式,包括赋值表达式!其效果和在程序中执行该表达式的作用是相同的(别冲突了)。例如,我们在求值输入框中输入n=500,就可以将变量n的值改为500

输入重定向

打开gdb server调试模式

调试的数据重定向功能需要打开gdb server调试模式。从“工具”菜单“选项”打开“选项”对话框,在“调试器”->“通用”选项页中可以找到“使用gdb server调试“选项,将其勾选上,然后确定即可。

img

指定数据文件(从而可以直接只看输出)

通过工具栏或者**”运行“菜单中的”运行参数…“按钮,打开”运行参数“选项页**

在选项页中,勾选”将程序的标准输入重定向到下面的文件“,并选择数据所在的文件(本例中使用F盘根目录下的test.txt文件,即F:\test.txt作为输入文件),然后确定即可。

img