NOI Linux 2.0 竞赛环境食用指北

news/2025/1/6 1:27:22/文章来源:https://www.cnblogs.com/dccy/p/18652307

NOI Linux 2.0 竞赛环境食用指北

终端

使用 Ctrl+Alt+T 在当前登录用户的目录 ~ 中打开终端,也可以在文件夹中 右键Shift+右键 在当前文件夹打开终端。

运行可执行文件需要加 ./,例如 ./<filename>。注意 Linux 中可执行文件是没有后缀名的。

mkdir 新建目录,ls 列出目录,cd 切换目录。但建议在图形化界面下操作。

可以将文件拖到黑窗中快速索引文件路径。

Ctrl+C 杀掉当前终端中运行的进程。

快捷键

这些都跟 windows 下一样。

Win+D 显示桌面。

Alt+Tab 切换窗口。

Win+Space 切换输入法。

注意新建文件夹不能使用 Ctrl+Shift+N

编译

g++ <filename>.cpp -o <filename> -std=c++14 -g -Wall -Wextra

可以加上 -fsanitize=address,undefined 检查数组越界和未定义行为,它会在运行出现错误时往终端中丢出信息。
不过注意程序运行时间会增加

在当前终端中开大栈 ulimit -s unlimited

编辑器

Code Blocks

一款自带调试功能的 IDE。

我不会用,界面好复杂而且好丑。

优点:自带 gdb 调试。

缺点:需要建项目,字体丑手感差。

VS Code

断网安装的环境的 VS Code 没有配置 tasks.json,因而不能生成和调试,但可以尝试默写调试文件。

不过也可以当一个不错的编辑器,自带好看的字体和颜色与好用的补全,而且它自带终端。

优点:自带终端,有好用的补全。

缺点:缺少配置文件不能生成和调试。

Geany(推荐)

下方状态栏拉到最下面有自带的虚拟终端,左侧边栏有一个文件资源管理器。

快捷键 F9 编译,F5 运行。

可以在 生成-设置生成命令c++命令-build 一栏设置编译选项。

Shift+F9 还可以运行文件所在目录下的 makefile

好像没有括号补全?有的,点击 工具-插件管理器 选择 auto-close 即可。

其他快捷键:Ctrl+F 查找,Ctrl+H 替换,Ctrl+K 删除一行。

优点:自带终端,可以方便设置编译选项。

缺点:没有 gdb

Sublime Text(推荐)

注意到时没有中文的。

Ctrl+Shift+B 选择生成方式,选择 make 可以执行 makefile
而选择 single c++ run 则以普通方式编译加运行。

之后在按 Ctrl+B 可以执行之前选择的生成方式。

注意 Sublime Text 虽然自带终端,但终端是不能标准输入的,这意味着需要文件读入。

而标准输出和 cerr 都可以显示在终端中。

注意它有一个打开文件夹功能,貌似是一个文件资源管理器是吧,但是注意你不应同时使用打开文件夹并且使用 makefile,因为它会在你打开的文件下运行 makefile而不是在当前文件所在的目录下运行 makefile,这会导致 make 失败。

其他快捷键:Ctrl+F 查找,Ctrl+H 替换,Ctrl+Shift+K 删除一行。

优点:自带单文件编译运行,还可以 makefile,并且有好看的界面与好用的代码补全。

缺点:终端不能输入,无 gdb

makefile

讲一下怎么写 makefile 文件。

在需要编译的文件所在目录下放一个名为 makefile 的文本文件,不需要后缀。

makefile 的格式为

[目标] : [依赖1] [依赖2] ...
[Tab] [命令行命令]

它会检测依赖与目标的保存时间,如果依赖更新,那么会执行命令。

如果要编译那么就是:

<filename> : <filename>.cppg++ <filename>.cpp -o <filename> -g -Wall -Wextra

我们还可以编译后运行:

run : <filename>./<filename>
<filename> : <filename>.cppg++ <filename>.cpp -o <filename> -g -Wall -Wextra

再配合上加栈与检查越界的选项,那么就是:

run : <filename>ulimit -s unlimited
<filename> : <filename>.cppg++ <filename>.cpp -o <filename> -g -Wall -Wextra -fsanitize=address,undefined

注:makefile 会检查目标与依赖的时间差异,这意味着,如果源文件没有改变,它就不会重新编译,这可以加快编译运行的速度。

工具

gdb 调试

gdb <filename> 打开文件并调试,<filename> 是可执行文件名。

源代码l 列出源代码。

l x 列出第 x 行附近的源代码,l name 列出函数 name 附近的源代码。

断点b x 在第 x 行插入断点。

d x 删除编号为 x 的断点,d 删除所有断点。

info breakpoints 查看当前所有断点。

运行r 运行,c 跳至下一断点,n 下一行,s 单步进入,q 退出调试关闭 gdb

until x 跳至第 x 行。

打印p x 打印变量 xp *x@100 打印 x 数组的前 100 项。

disp x 添加查看变量 x,每次单步都会显示值。

undisplay 解除所有查看的变量。

python3

终端输入 python3 回车打开 python

python3 <filename>.py 运行 .py 文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/863977.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学期2024-2025-1 学号20241424 《计算机基础与程序设计》第15周学习总结

学期2024-2025-1 学号20241424 《计算机基础与程序设计》第15周学习总结 作业信息 |这个作业属于2024-2025-1-计算机基础与程序设计)| |-- |-- | |这个作业要求在2024-2025-1计算机基础与程序设计第15周作业| |这个作业的目标|<作业总结>| |作业正文|https://www.cnblog…

中考英语优秀范文-008 when you in China, do as the Chinese do! 当你在中国时,入乡随俗!

1 写作要求 在不同的地方有不同的风俗习惯,饮食文化很重要。中国的饮食文化不同于西方。 请你谈谈中国的三餐,以“when you in China, do as the Chinese do!” 为题写一篇短文。 要求: 80词左右,内容合理; 要点齐全; 句子及篇章结构准确、连贯;书写规范。 2 优秀范文 W…

MongoDB集群中数据分布与分片

MongoDB集群中数据分布 Chunk是什么 在一个shard server内部,MongoDB还是会把数据分为chunks,每个chunk代表这个shard server内部一部分数据。chunk的产生,会有以下两个用途:Splitting:当一个chunk的大小超过配置中的chunk size时,MongoDB的后台进程会把这个chunk切分成更…

RoomFormer、FRI-Net

WSL CUDA安装 【一文解决】已安装CUDA与Pytorch但torch.cuda.is_available()为False_torch.cuda.is available返回false-CSDN博客 cuda安装 Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_ubuntu20.04安装cuda-CSDN博客 【CUDA】Ubuntu系统如何安装CUDA保姆级教程(2022年最新…

5G核心网短信解决方案概述

短信作为传统无线网络的基础业务,随着移动网络的飞速发展,我们会发现,在日常生活中我们使用短信进行沟通的情况越来越少了。但是在我们使用各种业务的时候,仍然离不开短信,例如: 注册新的APP、密码找回,快递取件,收发验证码等,对于安全性要求较高的业务,更要使用短信…

docker 安装doris

下载镜像docker pull apache/doris:build-env-ldb-toolchain-latest下载安装包 https://doris.apache.org/zh-CN/downloadwget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.7-bin-x64.tar.gz然后需要下载MySQL,这里提供MySQL的免安装版MySQL…

Windows单机安装MongoDB分片集群

Windows单机部署MongoDB分片集群 规划和准备 端口规划 操作系统:Windows Server 2012 MongoDB版本:4.2.25IP/节点名 mongos config shard1 shard2 shard3127.0.0.1(mongo1) mongos1(27017) config1(27018) 主(27001) 主(27002) 主(27003)127.0.0.1(mongo2) mongos2(27027…

学习-Nginx-安装nginx1.21.6开源软件

下载地址 http://nginx.org/download/nginx-1.21.6.tar.gz 通过网盘分享的文件:Nginx1.21.6 链接: https://pan.baidu.com/s/1tcsTs2IEmN80wt5VQ5U3PA?pwd=sky1 提取码: sky1 Xftp 传输安装包解压缩安装包 tar zxvf nginx-1.21.6进入到 nginx文件夹查看需要的依赖 ./configur…

C# 内嵌数据库 SQLite

最近,看到一个软件,软件是使用的内嵌数据库。我对这个东西没有实践过,今天突然想亲手做一做!。关于SQLIte的资料我就不多说了,网上都有。我自己也整理了一部分,基本上可以对SQLite有个全面的了解了。我这里就不废话了,直接上我自己的代码。 1:首先要先下载一个SQLite的…

Rust远程加载shellcode

学习rust, 练习写一个loader, 不足之处还请指教编写 隐藏黑框 在注释掉所有打印语句后编译运行还是会弹黑框, 解决方法是头部添加一行(指定 Rust 编译器生成的可执行文件为 Windows 子系统应用程序,而不是控制台应用程序): #![windows_subsystem = "windows"]‍ 反…

RustLoader

学习rust, 练习写一个loader, 不足之处还请指教编写 隐藏黑框 在注释掉所有打印语句后编译运行还是会弹黑框, 解决方法是头部添加一行(指定 Rust 编译器生成的可执行文件为 Windows 子系统应用程序,而不是控制台应用程序): #![windows_subsystem = "windows"]‍ 反…

机房轶事_2

机房轶事_2 之前 机房某同学的Luogu账号被另一个同学破解了密码,并且把头像改成了遗照(配花环)。 更过分的是,他居然将封面改成了教练的照片。