之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。
创新互联公司主要从事成都网站建设、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务通海,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
试想一下,静态库与汇编生成的目标文件一起链接为可执行文件,那么静态库必定跟.o文件格式相似。其实一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,即很多目标文件经过压缩打包后形成的一个文件。静态库特点总结:
为什么需要动态库,其实也是静态库的特点导致。
动态库特点总结:
生成动态库
一般C语言写的程序可以让其他语言进行调用,比如python, java,等等
c语言有两种库类型,静态库和动态库(共享库)
命令:ar rcs libmulib.a file1.o
Cgo 使得Go程序能够调用C代码. cgo读入一个用特别的格式写的Go语言源文件, 输出Go和C程序, 使得C程序能打包到Go语言的程序包中.
举例说明一下. 下面是一个Go语言包, 包含了两个函数 -- Random 和 Seed -- 是C语言库中random和srandom函数的马甲.
gcc -c jinpeng.c 生成jinpeng.o文件,该步是编译过程,将jinpeng.c编译成二进制码
ar cr jinpeng.a jinpeng.o 生成库文件
gcc -o test test.c ./jinpeng.a 静态链接,将库的内容加入到输出文件中。
头文件不需要编译,直接加入就好,头文件都是一些声明,库文件是具体实现。