在Ubuntu下搭建C/C++编程环境(vim+gcc+gdb)
在Ubuntu下搭建C/C++编程环境,综合起来说就是
要安装编程环境,在Terminal中执行
vim+gcc+gdb
。其中vim用于文本编辑,gcc用于程序编译,gdb用于代码调试。要安装编程环境,在Terminal中执行
sudo apt-get install build-essential
。
1 LINUX操作系统VIM的安装和配置
普通用户下输入命令:sudo apt-get install vim-gtk
接着输入“y”后,回车。之后不需要任何操作,等待安装完成。
vim配置:
刚安装的VIM,可能界面并不是十分友好,这就需要我们去更改vim的配置文件,按照我们的需求去修改它。在命令行下,输入命令:sudo vim /etc/vim/vimrc 必须加上sudo,否则你是没有权限编辑vimrc的。
在这个文件中,会有这么一句:syntax on 意思是语法高亮,如果您的被注释掉了,请“让它出来”。
请在您的VIM的最后一行,输入他们,可以让您的VIM变得更漂亮、舒服。
set nu // 在左侧行号
set tabstop //tab 长度设置为 4
set nobackup //覆盖文件时不备份
set cursorline //突出显示当前行
set ruler //在右下角显示光标位置的状态行
set autoindent //自动缩进
保存之后,配置完毕。如下图

2 ubuntu如何安装gcc
打开终端或者按下键盘上的Ctrl+Alt+T组合键,之后就可以可以进行安装了,因为要下载文件,所以必须进行连网,会进行自动的安装,安装好的之后就是如下图所示。

3 Ubuntu下C程序的编辑、编译、运行
创建一个hello.c文件。通过命令touch hello.c就可以直接创建该文件。要查看创建是否成功,我们直接通过命令ls查看即可。

创建完hello.c文件后,我们需要进行编写文件。我们使用vim编写程序,借助命令vim hello.c就会弹出下图所示的编辑对话框,我们就可以在其中进行编写代码了,
接下来我们进行写代码。如下图所示。

编写完按下esc然后输入:wq保存即可。
接下来我们需要对其进行编译。我们需要在命令行中输入命令gcc
hello.c,如果没有额外的错误或者警告信息打印出来,说明编译成功啦。
通过ls命令查看,会发现gcc hello.c编译完成后,会出现一个a.out.这个是编译hello.c文件后生成的一个可执行文件。我们通过命令./a.out运行该文件,就会输出我们想要的hello world语句了O(∩_∩)O哈哈~


附录
一) 常用编译命令选项
假设源程序文件名为test.c。
1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。
2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
3. 选项 -E
用法:#gcc -E test.c -o test.i
作用:将test.c预处理输出test.i文件。
4. 选项 -S
用法:#gcc -S test.i
作用:将预处理输出文件test.i汇编成test.s文件。
5. 选项 -c
用法:#gcc -c test.s
作用:将汇编输出文件test.s编译输出test.o文件。
6. 无选项链接
用法:#gcc test.o -o test
作用:将编译输出文件test.o链接成最终可执行文件test。
7. 选项-O
用法:#gcc -O1 test.c -o test
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
二) 多源文件的编译方法
如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]
1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:
#gcc -c testfun.c //将testfun.c编译成testfun.o
#gcc -c test.c //将test.c编译成test.o
#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test
三)gdb调试器的使用
输入命令:gdb Cfilename,开始调试程序。
下面列出一些gdb常用命令:
l <n> 输出第n行到n+9行的源代码
break <n> 在第n行设置断点
info break 查看断点信息
r 运行
n 单步执行
c 继续执行
p varName 输出变量值
q 退出
4 gdb调试
在UBuntu下安装GCC和其他一些Linux系统有点不一样。gcc+gdb)输入命令行 运行 sudo apt-get install build-essential build-essential包含gcc和gdb等工具,是C语言的开发包。安装完了可以执行 gcc --version gdb --version的命令来查看版本。这里我们的gdb在安装gcc时已经安装好了。接下来我们对a.out进行调试,输入#gdb a.out进入gdb调试。
设置断点,可以设置函数断点(gdb)break main,这是设置main函数处断点,也可以设置行断电break 14,指设置14行断点。
常用命令list 查看源程序 info break查看断点信息列表,delet 行号删除断点 run 运行程序,next执行下一句,print 变量名,打印当前变量的值 step下一步进入子函数。附录
一) 常用编译命令选项
假设源程序文件名为test.c。
1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。
2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
3. 选项 -E
用法:#gcc -E test.c -o test.i
作用:将test.c预处理输出test.i文件。
4. 选项 -S
用法:#gcc -S test.i
作用:将预处理输出文件test.i汇编成test.s文件。
5. 选项 -c
用法:#gcc -c test.s
作用:将汇编输出文件test.s编译输出test.o文件。
6. 无选项链接
用法:#gcc test.o -o test
作用:将编译输出文件test.o链接成最终可执行文件test。
7. 选项-O
用法:#gcc -O1 test.c -o test
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
二) 多源文件的编译方法
如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]
1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:
#gcc -c testfun.c //将testfun.c编译成testfun.o
#gcc -c test.c //将test.c编译成test.o
#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test
三)gdb调试器的使用
输入命令:gdb Cfilename,开始调试程序。
下面列出一些gdb常用命令:
l <n> 输出第n行到n+9行的源代码
break <n> 在第n行设置断点
info break 查看断点信息
r 运行
n 单步执行
c 继续执行
p varName 输出变量值
q 退出
Reference: