linux应用开发-设计静态库

linux应用开发-设计静态库
一 应用程序


函数库(用户)和系统调用(linux内核)


二 库分类


1 静态链接库(*.a)


一个程序使用一个函数库


2 动态链接库(*.so)


多个程序可以使用同一个函数库,减少程序的大小


3 静态库比动态库大


三 制作自己的静态库


1 gcc -c mylib.c -o mylib.o


2 ar cqs libmylib.a mylib.o


3 将做好的libmylib.a 复制到/usr/lib目录下


四 使用自己创建的静态库


1 linux默认链接动态库,若要链接静态库则:gcc -static hello.c -o helloc.out


2 使用自己的动态库:


创建main.c来调用自己的库


创建main.h里面包含了要调用的函数库里面的函数的原型声明


编译调用gcc -static -lmylib main.c -o main.out -l参数为调用自己的lib


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


linux目录/usr/lib和/lib下存放了相应的lib,常用libmylib.a来命名,前面的lib必须加上


五 简单加法计算器案列


1 编写add.c


2 编译成静态库:gcc -c add.c -o add.o      ar cqs libadd.a add.o


3 复制到/usr/lib: cp libadd.a /usr/lib/


4 创建main.c来作为主函数调用add函数 创建main.h来包含add函数的声明 


5 编译调试:gcc -static -ladd main.c -o main.out


6 运行./main.out

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。