NOI Linux 2.0 的镜像可以从 NOI 官网下载。(NOI Linux 2.0发布,将于9月1日起正式启用!)
可以采用 Virtual Box 或者 VMWare 来安装虚拟机(不建议安装实体机,如果想要尝试 Linux 环境,推荐使用 WSL 2.0,亦或用实体机安装 Ubuntu 发行版)。
编辑器NOI Linux 提供了很多编辑器(没有 Dev C++ 考试的时候也没网)。
建议使用Code::Blocks。下面详细介绍各个编辑器的利弊。
VS Code作为编辑器的神,具有轻量级的优点。但是,因为系统自带的版本没有 C++ 插件,断网状态无法自行安装,考试时放弃,日常可以安装插件做练习。
Sublime Text一样只有高亮不能补全。一个小亮点是配置 Task 的操作还算简单,然而并不推荐。
Vim一个纯命令行的编辑器,以学习曲线陡峭而闻名,配置也较复杂,并不推荐使用。
当然,为了你 ssh 上服务器能改两行字,建议学习一下最基本的操作(i, esc, :wq, :q!)。也是很多大神编程的必备,装神可以学学。
Geany一个轻量级 IDE。有部分补全,但是还是不够好用。
Code::Blocks(重点)这是 NOI Linux 下最好用的一个编辑器。下文将介绍其功能以及一些配置。
正确编译并运行cpp代码 需要创建工程项目
竞赛时候,按试卷要求每个题目都要建工程文件,.cpp .in 文件 都是保存到这个目录下,
如果文件放错了位置 拷贝到工程文件下后,还需要 右键点击 工程名称 菜单 选择 add files 把文件加载到工程文件中。
考试结束前 保留每个目录下面的cpp文件,其他删除。
推荐将左边的 Management 窗口修改为 File,这样可以看到文件树(比赛的时候,就可以很方便的切换各个代码文件,打开样例等)。
Code::Blocks 的补全功能很完善,基本上都能补全。在下方可以看到一个 NativeParser,看到 Parsing Stage Done 之后就可以补全了。
使用自带的三个按钮分别进行编译/运行操作。会自动跳出一个终端(默认是 XTerm)。因为 XTerm 字实在是太小了,我们在设置了换成 Ubuntu 的自带终端。
然后就很正常了。
下一步是设置一些编译的开关。
点击 Settings->Compiler 即可进行设置。
一般来说,要打开的开关有
-std=c++14:规定 C++ 版本(竞赛使用 C++14)-Wall:全部警告-Wextra:额外警告-Wshadow:警告局部变量覆盖-O2:开启优化(竞赛是开启 O2 的)-g:给 gdb 调试用(这个和 O2 不能一起开)打开了开关后,在 Build Message 里就可以看到警告。比如说以下是一个很典型的错误,重定义了一遍全局变量。可以看到编译器确实发出了警告。
代码的编辑和调试上文,我们介绍了 Code::Blocks 编译功能。然而在