博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Ubuntu下搭建C/C++编程环境(vim+gcc+gdb)
阅读量:2090 次
发布时间:2019-04-29

本文共 2473 字,大约阅读时间需要 8 分钟。

在Ubuntu下搭建C/C++编程环境,综合起来说就是
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哈哈~
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:
你可能感兴趣的文章
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
为什么在优化算法中使用指数加权平均
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>