ACM组队训练ubuntu环境配置

每年都指导新生配置ubuntu太麻烦了,留给帖方便大家看吧


首先邀请赛级别以上的比赛都是用ubuntu的,所以我们平时的组队训练也十分建议使用ubuntu系统,这里给出配置过程


首先是ubuntu 12.04的下载地址:http://pan.baidu.com/s/1kTkcmxD

解压之后双击wubi.exe就可以安装了,像装普通软件一样,最好装在一个空磁盘里,从其他盘分30G出来就够了

注意这个ubuntu是64位的,32位机好像不能装,另外解压之后把原来的压缩包再放进解压后的文件夹里,安装貌似会更快

安装过程很简单,有一个地方是要设置密码的,你们装的时候能搞的定的

安装好了以后是双系统,重启就可以选择系统了,另外本人安装的时候系统环境是windows7,不能保证其他环境安装不会出问题


这里主要说ubuntu安装之后的一些配置问题:


一:相关软件安装

ubuntu下我们一般采用vim编辑 + g++编译 + gdb调试的组合,所以这里介绍怎么安装这些东西,如果你要用codeblocks也类似


ctrl + art + T启动终端,先输入vim看看,如果安装了vim会显示vim的版本信息,当然没装的话就提示找不到了

输入命令 sudo apt-get install vim 然后等他安装完就好了,如果没反应就多试几次,或者再直接vim一下

另外凡是使用sudo权限都会要密码,下面就不再赘述了

同理 sudo apt-get install g++ 可以安装g++,gdb我记得装完g++就有了

其次如果你不习惯自带的浏览器,也可以sudo apt-get install chrome ...你懂的


二:vim 配置

安装完vim之后要对vim做一些配置,不然写代码很蛋疼

终端下输入 vim ~/.vimrc 打开vim配置文件,按 i 进入插入模式,写入以下代码(这里会提到一些vim命令,先用着,后面再详述)

ACM组队训练ubuntu环境配置_第1张图片

vim可以配置的东西有很多,这里是比较简洁的,因为比赛的时候在现场也要配置这个,太复杂的话你还想不想抢FB了

从上往下的效果依次是:开启语法缩进(大概是这个意思吧- -)、允许使用鼠标(看爱好)、设置使用C++缩进标准、tab为4个空格(所以缩写为set ts = 4)、自动缩进为4个空格(可以缩写为 set sw = 4)、显示行号


写完之后按Esc退出编辑状态 输入 :w 回车保存,然后退出就可以了(点叉就行,正确的姿势是 :q )


比赛时我们一般配置到此就OK了,平时的话还一继续配置一下编辑 - 首选项,改改字体颜色什么的,如下图

ACM组队训练ubuntu环境配置_第2张图片


二:vim常用命令

在终端下用命令 vim a.cpp 就会用vim打开a.cpp文件,没有的话会直接新建

我们在比赛时一般只会用到下面这些命令


//
Esc   //退出编辑模式
i     //进入编辑模式,光标停留在当前位置
o     //进入编辑模式,在当前行之后新建一行,光标停留在新行行首
dd    //删除当前光标所在行,在命令前加数字可以删除多行,如 5dd 将删除从当前行开始向下5行
yy    //复制当前光标所在行,在命令前加数字可以复制多行,如 5yy 将复制从当前行开始向下5行
p     //把复制的内容粘在当前行下面,大写的P就粘上面
gg    //跳到文件第一行
u     //撤销
gg=G  //规范缩进

:w    //保存
:q    //退出
:q!   //不保存强制退出
:%s/old/new/g //搜索整个文件,将old都替换成new,old和new是字符串
//


目前想到的常用的就这么多,如果有其他的我之后再加吧,这些里除了Esc以外,都是在非编辑模式下用的,当然还有上下左右我没写在里面


三:代码编写、运行和调试

1)代码编写

编写很简单,vim a.cpp就可以开始写了...熟练上面那些命令就可以

例图:

ACM组队训练ubuntu环境配置_第3张图片

写完保存以后开始测试运行,一般会再开一个终端

PS:这里说的方式是比赛中常用的,不一定符合规范

首先输入命令 g++ a.cpp ,表示用g++ 编译a.cpp文件,如果有编译错误都会给出,啥都不说就是编译成功了

然后输入gdb a.out 指定输出流是a.out,这个a.out是默认的输出流,如果你编译的时候没有指明输出流,这一步一律是a.out,和a.cpp无关

例图:

ACM组队训练ubuntu环境配置_第4张图片

然后屏幕会输出一堆信息,无视之,再按 r 即可运行 (r = run)

程序运行结束以后还会在gdb界面,再按 r 可以重新运行,如果要退出请按 ctrl + z,强制退出的时候按两次就可以了


2)代码调试

很多时候代码出问题了我们需要调试,需要在编译的时候启动

输入命令 g++ -g a.cpp 表示编译文件并且开启调试

然后还是 gdb a.out,这一步之后要停一下

在gdb这里不要直接r,可以设置断点

输入 b 20 表示在第20行设置断点

输入 b 20 if a = 7 && b = 8 表示当a == 7 && b == 8的时候在第20行断点

设置好了之后就可以 r 了

在断点处有几个常用命令

p 变量名  表示显示一个变量的值,也可以直接p整个数组,或者p多维数组的某一维

p f(x) 这里f是你写的函数,x是传进去的参数,可以查看函数执行结果

c 表示continue ,一直进行到下一个断点

n 逐行执行下一步

watch 变量名  表示监视一个变量的值,一旦发生变化,会给出原值和新值

直接回车  表示重复上一个命令


这些是我常用到的,还有一些其他的命令也可以去网上查,不过一般这些就够了,删除断点啥的我一般都是重来一遍的...

例图:

ACM组队训练ubuntu环境配置_第5张图片


另外gdb的调试熟悉了是很强大的,但是不推荐太依赖调试,因为比赛时候大多数时间你是要对着打印的代码肉眼调试的


3)O2优化

有的时候想试试极限数据要跑多久,就要开O2优化,不然太慢

方法就是在编译的时候 g++ a.cpp -O2 就可以了,其他的都和正常运行一样


四:解决ubuntu发热严重问题

当你用了一段时间之后会发现电脑出奇的烫,这是因为ubuntu默认开了独显,发挥计算机机智的性能...当然我们打比赛写个代码还不至于切换显卡...

解决方式:

在终端下输入命令

sudo su 
echo IGD > /sys/kernel/debug/vgaswitcheroo/switch  
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch 
表示切换到集成显卡并关闭独显

然后再用命令  sudo gedit /etc/rc.local 打开启动项文件

在exit 0前面把上面那段命令插进去就好了,这样以后启动的时候会直接设置关闭独显

例图:

ACM组队训练ubuntu环境配置_第6张图片


当然如果你的电脑没有独显就当我没说....


五:无法关机的问题

不知道有没有人和我一样,使用了一段时间以后,用右上角的关机已经关不掉系统了,会玩命的重启

解决方法是在终端下输入命令 sudo init 0 来关机...


暂时就介绍这么多,如果发现错误望指出

你可能感兴趣的:(ACM_其他)