本文由 程序喵正在路上 原创,CSDN首发!
系列专栏:虚拟机
首发时间:2022年9月10日
欢迎关注点赞收藏留言
一以贯之的努力 不得懈怠的人生
在命令终端输入:gcc -v
可以查询当前系统安装的 gcc 版本
如果我们有 hello.c 的 C 语言源代码,那么编译的命令是:gcc -o hello hello.c
-c
:仅生成拓展名为 .o 的目标文件,不链接生成可执行文件-o 文件名
:指定 gcc 可执行文件名,系统默认生成的可执行文件名为 a.out-g
:编译时加入调试信息,使得后期方便对程序进行调试,主要是为支持 gdb 的调试那么在 ubuntu 中我们怎么来创建和编辑 C 语言程序呢?
很简单
mkdir 文件夹名
来创建文件夹touch mytest.cpp
创建 C 文件gedit mytest.cpp
就会弹出编辑对话框,如何就可以在其中进行编辑,当然你也可以选择找到 mytest.cpp 后双击打开gcc mytest.cpp
编译文件,若没有出错则编译成功./a.out
运行程序mytest.cpp
操作如图:
编译后可以发现多了一个 a.out 文件
刚才的编译是没有带参数的,下面我们试试看使用带参数的编译
什么是 gdb ?
怎么使用?
gdb 程序名
常用的 gdb 功能如下
list 命令
:显示程序源代码break 行号
:给程序对应的行号打断点break 函数名
:给函数的入口设置断点info break
:查看全部断点信息delete 断点号
:删除对应编号的断点run
:开始运行程序,直到遇到断点continue
(缩写为 c):程序继续执行next
(缩写为 n):执行下一语句quit
:退出调试当一个应用程序涉及到的 C 语言源代码文件达到成百上千后,直接采用 gcc 编译会出现以下问题:
什么是Makefile?
为什么需要 Makefile 呢?
如何使用 Makefile?
创建两个文件:cal.c 和 add.c
对应的 Makefile:
cal: cal.o add.o
gcc -o cal cal.o add.o
cal.o: cal.c
gcc -c cal.c
add.o: add.c
gcc -c add.c
冒号左边的文件依赖于右边的文件
在 cal.c 和 add.c 文件的同目录下创建一个名为 Makefile 的文本文件:
Makefile 的自动推导功能
make 命令可以自动推导文件以及文件依赖关系后面的命令,make 会自动识别并自己推导命令。只要 make 查到某个 .o 文件,它就会自动把相关的 .c 加到依赖文件中
Makefile 常用的符号
简化的 Makefile 如下:
cal: cal.o add.o
gcc -o $@ $^
cal.o: cal.c
gcc -c $<
add.o: add.c
gcc -c $<
之前的案例:cal.c、add.c 源代码与 Makefile 在同一个目录
现在:cal.c 和 add.c 位于 src 目录,而 Makefile 位于 src 的父级目录
要求:编译 cal.c 和 add.c 文件,并将可执行文件放置于父级目录
环境需要自己准备,记得将 Makefile 改成这样:
编译运行过程:
清理掉不需要的文件: