库文件、gdb、make

库文件分类(只能使用功能,不能看到原码,保存函数和变量,只能使用不能看到其实现 )
SDK开发包:库文件+开发工具
静态库:在编译时加载(内存大)
动态库:在运行时加载(内存少)
库文件存放位置:/lib;/usr/lib(第三方软件)
设置库文件步骤:
gcc -c add.c
gcc -c sub.c
ar(工具) -rcs(工具选项) libcal.a add.o sub.o
gcc main.c -lcal -L.-o cal
./cal

使用静态库和动态库编译可执行文件的优缺点?
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。

动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在
当要使用静态的程序库时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,
所以一旦连接成功,静态程序库也就不再需要了。然而,对动态库而言,就不是这样。动态库会在执行程序内留下一个标记‘
指明当程序执行时,首先必须载入这个库。由于动态库节省空间,linux下进行连接的缺省操作是首先连接动态库,也就是说,
如果同时存在静态和动态库,不特别指定的话,将与动态库相连接。

二、调试器gdb
1、启动被调试的程序;
2、设置断点,单步执行;
3、查看变量的值;
查看源代码:gdb+可执行文件±-tui
layout split ;layout src;layout asm;
断点:break+行号
break+行号+条件
break+函数名
info break;
delete+断点编号
disable+断点编号
inable+断点编号
clear+行号

运行命令:
run:运行程序
next(不进入子函数)、step(进入子函数)
continue:继续运行直到程序结束;(再次遇到断点还会停止运行)

四、工程管理器make
1、什么是工程?很多文件构成的软件代码------10000个.c文件如何编译?工程管理器
作用?自动编译、管理代码
makefile规定了如何自动编译
脚本文件:批处理
脚本编程–测试、运维
Makefile三要素:目标、依赖、命令
目标+:+依赖 换行tab命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值