Linux动态库与静态库
来源:互联网 发布:淘宝一件代发怎么付款 编辑:程序博客网 时间:2024/06/05 02:16
目的:验证动态库和静态库的相互依赖关系,
过程:1.一个函数的c文件(test.c)被编译成动态库(libtest.so)
2.另外一个函数的c文件(test2.c)依赖libtest.so,被编译成libtest2.a
3.主函数(main.c)调用libtest2.a中的函数
4.移走libtest.so文件(不存在的情况),main执行情况。
test.c
int f(){ return 3;}
编译为动态so库文件:
gcc -shared -fPIC -o libtest.so test.c 生成libtest.so
test2.c
#include <stdio.h>extern int f();int test2(void){ printf("the result is %d\n",f()); return f();}
编译为动态a库文件:
ar rcs libtest2.a test2.c 生成libtest2.a库文件
main.c
#include <stdio.h>extern int test2(void);int main(){ printf("test2 :%d\n",test2()); return 0;}
依赖libtest2.a文件,编译为可执行文件:gcc -o main main.c -L. -ltest ./libtest2.a
执行 ./main
输出:
the result is 3
test2 :3
把libtest.so拷贝到上一级目录,执行 gcc -o main main.c -L../ -ltest ./libtest2.a 依然可以编译成功。
阅读全文
0 0
- linux 静态库与动态库
- linux下动态库与静态库
- linux中的静态库与动态库
- Linux动态库与静态库
- Linux静态库与动态库制作
- linux 动态库与静态库
- Linux下动态库与静态库
- Linux下动态库与静态库
- linux静态库与动态库制作
- Linux 动态库与静态库
- 动态库与静态库【linux】
- Linux下静态库与动态库
- Linux中的动态库与静态库
- linux 动态库与静态库
- linux动态库与静态库
- Linux静态库与动态库
- [4]Linux静态库与动态库
- linux静态库与动态库
- 解决SQL Developer无法远程连接Oracle 12c问题
- php---第一个扩展开发
- gcc rpm_使用rpm -qi gcc命令来获取gcc包的版本,安装日期等信息
- Serenity安装和创建DEMO--学习第一天
- Android获取Manifest中<meta-data>元素的值
- Linux动态库与静态库
- python 中split()使用多符号分割
- win10安装Anaconda+TensorFlow+配置PyCharm
- CAP理论和base模型
- studio代码混肴规则
- 解决编译出现TextAppearance.Material.Widget.Button.Borderless.Colored not found的问题
- Qt Charts 之 QBarSeries Class
- mysql5.7安装遇到的问题总结,持续更新
- CSS学习