gcc编译
-v / –v / –version 查看gcc版本号
-I 指定头文件目录,注意-I和之间没有空格
当需要不同路径下的别的文件时使用-I路径
-c 只编译,生成.o文件,不进行链接
-g 包含调试信息 -On n=0∼3 编译优化,n越大优化得越多
带编译信息的比不带编译信息的可执行文件大
-Wall 提示更多警告信息
-D 编译时定义宏,注意-D和之间没有空格
-E 生成预处理文件
-M 生成.c文件与头文件依赖关系以用于Makefile,包括系统库的头文件
-MM 生成.c文件与头文件依赖关系以用于Makefile,不包括系统库的头文件
正常编译
调试
生成可调试的可执行文件
要在编译的时候加-g,生成的可执行文件就带有编译信息了。
进入调试:gdb 可执行文件名字
退出调试:quit(q)
查看代码:list(l) 行号,显示10行代码
开始调试:start(停在main函数的第一行)
开始调试:run(运行到第一个断点处,如果没有断点直接运行到函数结尾)
逐过程: next(n)
没有进入到调用的函数体内。
逐语句: step(s)
进入到调用的函数体内。
继续执行上一条命令:回车
查看变量的值:print(p) 变量名
持续监控变量:display 变量名
结束持续监控变量:undisplay 变量编号
下断点:break(b) 行号/函数名
查看断点信息:info breakpoints
继续运行到下一个断点处:continue(c)
每次走到断点都会增加断点触发次数,可以使用 info breakpoints 查看。
临时禁用断点:disable 断点编号
取消禁用断点:enable 断点编号
运行 ./可执行文件名
./a.out
给生成的可执行文件起名 -o
gcc main.c -o app
多个文件一起编译
编译c++
g++ -std=c++11 xxxxx.cpp -o yyy