库是什么,库就是别人事先写好的代码,我们可以下载下来编译,也可以直接用别人编译好的。
linux和windows下库文件的格式不兼容
linux下包含静态库和动态库
静态库就是将库文件和自己写的代码一起打包成一个可执行程序。
静态库程序多了之后,体积会很大。但是运行的时候不需要加载库,可以运行的更快。
动态库就是将库文件和自己写的代码分开,复制的时候需要一起移动。
介绍完这两个库的区别,我们来制作一个静态库
·····编译的程序中需要有main函数,不然无法生成可执行程序
首先说一下步骤
1、编写库文件代码,编译为.o目标文件
2、ar 命令创建 libxxx.a 文件
ar -rsv libxxx.a xxxx.o
库文件的命名规则 要以lib开头 .a结尾,用.o文件来生成库
命令 ar -rsv libhello.a hello.o
下图是ar参数的介绍
生成一个库
t 就是查看库文件的相关信息 可以看该库文件是由什么产生的
查看库文件的信息
怎么使用库文件
gcc -o test test.c -L. -lhello
gcc -o 目标文件 源码.c -L路径 -lxxxx
-L. 就是在当前文件夹里面找,-L后面直接跟库所在的路径
-l 后面直接跟库的名字,不用写lib和后面的.a
在程序中,直接声明库中有啥函数就可以了,或者写个头文件。
在生成可执行文件的时候指定下路径和库的名称就好了
静态库就是将所有的代码都打包到程序中去