程序函数库可分为3种类型:静态函数库(static libraries)、共享函数库(shared libraries)、动态加载函数库(dynamically loaded libraries):
1、静态函数库,是在程序执行前就加入到目标程序中去了 ;
2、动态函数库 同 共享函数库是一个东西( 在linux上叫共享对象库, 文件后缀是.so ,windows上叫动态加载函数库, 文件后缀是.dll )
(1)运行快
(2)发布程序无需提供静态库,因为已经在app中,移植方便
以 testfun.c (不包含主函数 main ) 为例子
gcc testfun.c -c // 生成 xxxx.o 的文件
ar rcs libtest.a testfunc.o // xxx.o文件生成xxx.a静态库文件
gcc -shared -fpic test.c -o libtest.so
// -shared 指定生成动态库
// -fpic 标准,fPIC 选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码
gcc test.c -ltest -L ./ -o mainProStatic
// -ltest -l 是制定要用的动态库,库名砍头去尾
// -L 告诉 gcc编译器从 -L 制定的路径去找静态库。
// 默认是从 /usr/lib /usr/local/lib 去找
// libcalc.so
gcc calculatorT.c -lcalc -L ./ -o mainProDy
本文地址:https://blog.csdn.net/chinesekobe/article/details/107623746
如对本文有疑问, 点击进行留言回复!!
如何在Ubuntu 18.04(实体机)上配置OpenWRT的开发环境
网友评论