这篇文章上次修改于 351 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

NOI Linux2.0考场环境使用指南

编写代码

Code::Blocks

1.png

Code::Blocks是考场唯一一个可以图形化调试的IDE,但是极为难用。

创建项目

2.PNG

3.PNG

4.PNG

5.PNG

更改终端

6.PNG

7.PNG

然后就可以编代码啦,编译选项我也没找到在哪里改,反正不建议使用

优雅折中的Geany

Geany非常简单,打开后和Dev-C++非常相像,只可惜不能调试,只能单开终端调试,可以更改编译选项。

8.PNG

更改Build的编译选项即可,可以参照这个来写:

g++ "%f" -o "%e" -g -Wall -std=c++14 -fsanitize=address,undefined

后面一个神奇的编译选项将在后面提到。调试请参考VSCode的调试部分。

VSCode

听说你想用机房很火的VSCode?哈哈,CCF提供的C/C++插件处于半残废状态,要想编译和调试只能手写JSON,反正我不会。

但是VSCode的代码高亮等等等很好用,只是要手敲命令行,我认为还好。

打开工作区

建议直接打开要求的代码保存目录。

9.PNG

编译及运行

在bash终端里面输入

g++  *.cpp -o * -g -Wall -std=c++14 -fsanitize=address,undefined

后面的很复杂的编译选项可以不管,这个是新版本g++加入的新功能,可以一定程度上避免程序的UB行为避免大部分RE。

运行

./*

就可以像在Windows下一样输入了,Ctrl+C强制结束。

调试

调试功能依赖于gdb。

注意事项:

如果此行没有输入命令,按下回车,会自动执行上一行的内容,容易导致翻车

使用指南:

进入gdb:

gdb *

查看源代码:

list

就会列出代码,每次列出 $20$ 行,如果列出,说明可以开始调试,否则编译过程中可能没有加入 -g 选项。

加入断点:

break xxx(行号)

运行:

run

下一步:

next

单步进入:

step

跳过:

continue

查看变量值:

print xxx(变量名)

应该只会用这些,多余的可以自行了解。

扩展

NOI Linux的其他翻车细节

Arbiter

arbiter别乱用,特别容易崩溃。

喜闻乐见.jpg

scp?

sshd被删了,别想着偷别人代码。

中文目录

哪个zz想的Linux目录是中文啊啊啊,不要把代码复制到桌面,不要给文件名加上中文,否则编译错误满天飞。

编辑器崩溃

不建议用编写代码的IDE来看样例,建议单独开一个,大样例会把编辑器搞崩溃,代码就没了。