嵌入式学习笔记5-静态函数库设计示例

本文基于国嵌的视频教程以及Red Hat Enterprise Linux Server (Release 6.3)系统,总结一下在Linux系统下关于动态、静态函数库的设计

 Linux应用序设计中需要的外部函数主要由函数库和系统调用来提供:

 

 两者的区别在于:


函数库按照链接方式可分为静态链接库和动态链接库。Linux应用序使用的主要函数库均存放于/lib, /usr/lib目录下,其中采用*.so.*方式命名的是动态函数库,而以*.a方式命令的是静态函数库。静态链接库的特点是:程序所要用到的库函数代码在链接是全部被copy到程序中。这样一来导致的问题就是应用程序大小增大,运行时对内存空间的浪费严重。

Linux下进行链接时 默认是链接动态库。如果需要使用静态库,需要使用编译选项-static。例:

gcc -static test.c -o test。

制作静态库一般步骤:

首先准备一个源文件mylib.c.

1. gcc –c mylib.c –o mylib.o
2. ar cqs libmylib.a mylib.o
3. 将制作好的libmylib.a 复制到/usr/lib即可

在应用程序的编译链接是应注意GCC在链接时,默认只会链接C函数库,而对于其他的函数库,则需要使用-l选项来显示地指明需要链接。

例如:gcc -static test.c –lmylib -o test

此时链接到的便是我们编写的静态链接库:libmylib.a

具体可参考相关技术手册以及国嵌培训视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值