11-10linux笔记

Linux开发工具
1.编译器GCC(语法错误)
2.调试器GDB(功能错误)
3.工程管理器make
4.脚本shell(脚本文件不用编译可直接执行)
Linux是不区分拓展名的,但vim和gcc区分
源文件.c–>预处理–>编译–>链接–>可执行
gcc是一个交叉平台编译器,它能够在当前cpu平台上为多种不同体系结构的硬件平台开发软件工程。
-o 确定可执行文件的名称(默认a.out)
-E预处理(gcc -E hello.c -o hello.i)
-c 只编译,不生成可执行文件(生成.o的目标文件)
-S汇编代码
-O【0~3】优化
-g产生调试工具(gdb)所必需的符号信息
-D宏定义
-u删除宏定义
-I增加一个搜索头文件的目录
-I-取消搜索路径
-L增加一个搜索库文件的目录
-lm数学函数库
静态库:
1。源代码(.c)
2。生成.o目标文件(gcc -c)
3。放到库里(ar rcs[rc不存在就创建该库文件,s更新库文件])
创建库:ar rcs libname.a .o
使用库:gcc file.c -o file -L. -lname
动态库:gcc -shared -fPIC -o 库名.so +源文件.c(创建动态库)
gcc 源文件.c ./库名.so -o +可执行文件名(使用动态库)
gdb(调试系统下):
1。$ gcc -g test.c -o test 编译生成可执行文件
2。$gdb test 启动gdb
3。break (b) 设置断点
4。run (r) 运行程序
5。next(n)或回车 单步运行(不进入子函数)
6。continue (c) 继续进行
step(s)单步运行(进入子函数)
info break 查看断点
finish 运行程序,直到当前函数结束
q退出gdb模式
list(l)查看程序(只显示10行)
print§+变量 显示指定变量的值(显示的变量不会随变量改变而改变)
watch+变量 对指定变量监控(显示的变量会随变量改变而改变)
delete+断点编号(Breakpoint1。。。)删除断点
b(行号)在指定行设置断点
b(行号)if 条件(b 5 if i=10)–>当i=10时第五行断点生效
clear(行号/函数名)删除指定行/函数名断点(不加则删除所有断点)
makefire(make)工程管理器
编写规则:
1。需要由make工具创建目标体 通常是目标文件或可执行文件(第一个是终极文件)
2。要创建的目标体所依赖的文件,创建每个目标体时的命令,这一行必须以tab开头(tab是命令的引导词)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值