首页 / C语言 / Linux下C语言编程基础
Linux下C语言编程基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux下C语言编程基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2715字,纯文字阅读大概需要4分钟。
内容图文
Linux下C语言编程基础
一、目的
- 熟悉Linux系统下的C开发环境
- 熟悉vi的基本操作
- 熟悉gcc编译器的基本原理
- 熟练使用gcc编译器的常用选项
- 熟练使用gdb调试技术
- 熟悉makefile基本原理及语法规范
- 掌握静态库和动态库的生成
二、实验步骤
1. Linux使用参考“别出心裁的Linux命令学习法”
Linux下C编程的工具集:
- Vim
- GCC
- GDB
- Make
我们提倡在Linux命令行下学习C程序设计。学习时在Ubuntu Bash中通过Ctrl+Shift+T
快捷键打开三个标签(tab),:
- 一个使用vim编辑代码;
- 一个使用gcc(或makefile)编译运行代码;
- 一个使用GDB调试代码。
我们可以使用ALT+1
,ALT+2
,ALT+3
快速切换,达到使用IDE一样的感觉。
2. Vim
Ubuntu中可以使用sudo apt install vim
安装Vim。Vim使用参考“做中学之学用学用Vim”
3. gcc
GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。 GCC编译代码的过程如下:
我们可以把编译过程分成四步,以编译hello.c生成可执行文件hello为例,如下图:
- 预处理:gcc –E hello.c –o hello.i; gcc –E调用cpp
- 编 译:gcc –S hello.i –o hello.s; gcc –S调用ccl
- 汇 编:gcc –c hello.s –o hello.o; gcc -c 调用as
- 链 接:gcc hello.o –o hello ; gcc -o 调用ld
编译过程比较难记,我们简化一下,前三步,GCC的参数连起来是“ESc”,相应输入的文件的后缀是“iso”,这样记忆起来就容易多了。 学习GCC的另外一个重点是:参考教材《深入理解计算机系统》7.6,7.10节,学习静态库,动态库的制作。
4. gdb
建议使用CGDB(sudo apt install cgdb安装),比GDB好用,熟悉VC,CodeBlock等IDE的调试方式的同学,可以使用DDD(sudo apt install ddd 安装)。
注意使用GCC编译时要加“-g”参数。
参考gdb参考卡
GDB最基本的命令有:
- gdb programm(启动GDB)
- b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
- run 开始运行程序
- bt 打印函数调用堆栈
- p 查看变量值
- c 从当前断点继续运行到下一个断点
- n 单步运行
- s 单步运行
- quit 退出GDB
问题:GDB的n(next)命令让GDB执行下一行,然后暂停。 s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?为什么?
其他几个我认为应该掌握的调试命令有:
- display 跟踪变量值的改变
- until 跳出循环
- finish 跳出函数
- help 帮助
学习参考:
5. make与makefile
三、练习
- 练习vimtutuor至少一遍;
- 使用vim 输入以下代码,练习使用“K”查找帮助文档:
- 练习gcc编译运行代码;
- 练习gdb调试代码;
- 把上述代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so;
- 编写makefile,让代码编译,上述静态库和共享库的使用自动化
欢迎关注“rocedu”微信公众号(手机上长按二维码)
做中教,做中学,实践中共同进步!
版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
如果你觉得本文对你有帮助,请点一下左下角的“好文要顶”和“收藏该文”
内容总结
以上是互联网集市为您收集整理的Linux下C语言编程基础全部内容,希望文章能够帮你解决Linux下C语言编程基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。