动态库与静态库相互调用
来源:互联网 发布:面向列的开源数据库 编辑:程序博客网 时间:2024/06/05 02:55
解决了困惑我已久的问题:动态库和静态库相互调用的问题。
转载自: http://blog.csdn.net/lien0906/article/details/54950152
静态库与动态库相互调用
测试场景,Test,lib1,lib2,dll1,dll2,分为下面四种情况:
1、Test->lib1->lib2
lib1编译自己的代码,对lib2的部分,只需要lib2的头文件,对lib2的代码实现,使用占位符关联。
生成Test连接的时候,把lib1的代码实现包含进来,再递归,把lib1中关联lib2的代码实现也包含进来。
运行Test的时候,不再需要lib1和lib2。
2、Test->lib1->dll2
lib1编译自己的代码,对dll2的部分,只需要dll2的头文件,对dll2的代码实现,使用占位符关联。
生成Test连接的时候,把lib1的代码实现包含进来,但是,dll2中的代码不包含进来。
运行Test的时候,不需要lib1,但是需要dll2【不需要dll的lib文件】
3、Test->dll1->lib2
dll1编译自己的代码,对lib2的部分,需要lib2的头文件和实现,即lib2,把lib2的代码实现包含到dll1中
生成Test连接的时候,dll1中的代码不包含进来,并且不再需要lib2。
【可以这样测试,生成lib2,生成dll1,生成test.exe,删除lib2,删除test.exe,再生成test.exe,可以生成成功。说明生成test.exe,连接的时候根本不需要lib2,。也就是说,静态库会被连接到动态库或者exe中,但是不会被连接到其他的静态库中】
运行Test的时候,需要dll1,但是不需要lib2
4、Test->dll1->dll2
dll1编译自己的代码,对dll2的部分,需要dll2的头文件和lib文件,对dll2的代码实现,使用占位符关联。
生成Test连接的时候,Test需要dll1的lib,dll1需要dll2的lib,但是代码实现都不会包含在Test中。
运行Test的时候,需要dll1和dll2【不需要他们的lib】
- 静态库与动态库相互调用
- 动态库与静态库相互调用
- 静态库和动态库的相互调用
- 一个例子秒懂动态库与静态库的调用【详解】(.so和.a文件的相互调用)
- .h .lib .dll文件,静态链接库与动态链接库,静态调用与动态调用
- Linux静态库与动态库生成与调用实例
- 动态调用与静态调用
- 静态库调用动态库
- 动态库调用静态库
- 静态调用动态链接库
- 【Linux】静态库与动态库的生成及调用
- VC++ 静态库&动态库的创建与调用
- C++静态库与动态库、创建及调用方法
- 创建和调用动态链接库与静态链接库
- Go中调用C的动态库与静态库
- linux 动态静态链接库生成与调用方法
- 动态与静态库
- COBOL动态与静态调用
- unity3d 获取cpu主频 android
- WinDbg学习笔记八
- GeenMedical:文献查询、筛选、引用排序、相似文献、全文下载、杂志分区、影响因子、结果导出、杂志评述、直接投稿,一站服务
- java zxing二维码(可带logo)、条形码生成解析
- elasticsearch shard UNASSIGNED 修复
- 动态库与静态库相互调用
- import cv2 not module,win10 python3的问题
- 防止表单重复提交
- 数据结构与算法分析(Java语言描述)(18)—— 二叉搜索树最大、最小子节点的搜索、删除
- Jsoup 与 httpClient 获取网络资源
- Windows下配置jupyter notebook的python3与R运行环境
- mysql 用户管理和权限设置
- 跳跃表
- 不能上到MySQL服务器连接127.0.0.1