gcc通过后缀来区别文件的的类别
$^ :所有的依赖文件
初识GCC GDB Make
精选 转载.c c源文件
.a 由目标文件构成的库文件
.C .cc .cxx C++的源文件
.h 头文件
.i 已经处理过的C源文件
.ii 已经处理过的C++源文件
.o 编译后的目标文件
.s 汇编语言的源文件
.S 经过预编译的汇编语言源文件
gcc [opt] [filename]
-o 确定可执行的名字,若不带,则生成a.out
-g 生成的应用程序带有gdb调试信息
-c 只编译,不连接成可执行程序
-O 对程序进行优化
-O2 更深度的优化
-Idirname 将dirname所指出的目录加入的程序头文件目录列表中来,标准文件在/usr/include/
-Ldirname 将dirname所指出的目录加入到库文件的目录列表中
-ldirname 在连接时,装载名字为libname.a的函数库,指定lname 例如连接数学库(libm.a)时,lm
-static 静态连接,gcc默认连接采用动态连接,静态连接会使应用程序大小成倍的增长
-Wall 显示所有的警告信息
-w 不显示所有的警告信息
-Dname 定义一个宏,相当于在程序中使用 #define name
GDB是GUN发布的一款功能强大的程序调试工具,GDB主要完成下面三个方面的功能
1,启动被调试程序
2,让被调试的程序在指定的位置停住
3,当程序被停止时,可以检查程序的状态
GDB断点:
b 函数名(break)
b 行号
b 文件名:行号
b 行号 if 条件
info b 查看所有的断点
delete 断点编号 删除该断点
r 开始执行程序run
n 单步执行程序next(不进入子函数)
s 单步执行程序step(进入子函数)
c 继续执行程序,直到下一个断点,或程序结束(continue)
p i 打印i的值(print)
finish 运行程序,直到当前函数结束
watch i 对指定的变量进行监控
q 退出gdb(quit)
make
目标:依赖
命令
hello:hello.c
gcc main.c -o hello
伪目标:没有依赖,只有执行动作的目标
.PHONY:clean
clean:
rm -f hello
变量:
obj = main.o func.o
hello:$(obj)
gcc $(obj) -o hello
$@ :目标
$< :第一个依赖文件
下一篇:我的友情链接
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
初识C语言
简述初识c语言的心得
初识c语言 -
gdb学习1:初识gdb
(为了看起来比较舒服,罗里吧嗦的东西,我就不往上面粘贴了,以后都是这样,不再解
gdb #include 可执行文件 段错误 -
vi/gcc/gdb
vi/gcc/gdb
vi gcc gdb -
【Linux】一些工具的简单使用,vim/gcc/gdb/make
本篇博客将介绍linux下面一些简单工具的使用more。
vim linux 编辑器 git 可执行程序