社区
Linux/Unix社区
帖子详情
用静态库还是动态库?
Algopro
2003-07-11 08:12:33
谁有这方面的经验?
在实际的开发过程中你曾经遇到过什么麻烦?
...全文
62
3
打赏
收藏
用静态库还是动态库?
谁有这方面的经验? 在实际的开发过程中你曾经遇到过什么麻烦?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
铖邑
2003-07-12
打赏
举报
回复
还是看你的需要,如果你需要的库比较大,而且进程需要fork好几次,建议用动态。比如,我现在正在做一个数据处理系统,要连接好几台机器接收数据,而且为了保证数据的完整,需要一个数据来源专门由一个进程进行处理,以防止受到其它来源的数据处理不稳定的影响。我的数据库是SYBASE,用过的都知道,只要你用了它的API,就至少需要800K的内存,有时我一台机器需要启20个进程,这样的话就浪费了16M的内存,所以我就选择了动态链接库。
CoolQ
2003-07-11
打赏
举报
回复
如果考虑空间,应该用动态库,因为这毕竟是个方向。
如果考虑到移植问题和独立性问题(比如说需要在启动盘上使用),就用静态库。
不过现在主要的是用动态库了。如果考虑跨平台的话,不如再另一个平台上重新编译。
Algopro
2003-07-11
打赏
举报
回复
up
GLAUX头文件,动态、静态链接库
GLAUX.H, GLAUX.LIB, GLAUX.DLL
gcc/g++编译时-l参数优先选择
静态库
还是
动态库
?
1. 因此想强制链接某一个
静态库
的时候,可以直接使用
静态库
的名字,包括后缀名和前缀,例如libcurl.a,不通过-l来链接。这样子就会把
静态库
直接链接进来,这个例子中要求test.cpp和libcurl.a在当前编译路径下。学习makefile时,同时采用了
静态库
和
动态库
的链接方式,发现编译器会优先选择
动态库
使用。对于gcc/g++,一般通过-l参数来链接
动态库
和
静态库
,默认优先使用
动态库
进行链接。2. 另一种方式是通过-static,这是静态链接,要求链接所有的库都有对应的
静态库
。
1.4 编译库:
静态库
、
动态库
本文介绍了Linux下
静态库
和
动态库
的编译、封装与使用方法。主要内容包括:
静态库
的编译流程(将.o文件打包成.a文件)、封装
静态库
(解压后重新打包);
动态库
的编译(生成位置无关代码)、显式调用(避免符号冲突)、以及将
静态库
封装为
动态库
的方法。此外,还讲解了如何混合使用
静态库
和
动态库
(通过-Wl参数指定链接方式),并强调了避免同一库同时静态和动态链接以防止冲突。文章提供了详细的命令行操作示例和注意事项,适合Linux开发者参考学习库的管理与使用。
静态库
和
动态库
的区别
文章目录
静态库
和
动态库
的区别什么是库
静态库
的创建与使用共享库的创建与使用
静态库
与共享库的区别
静态库
和
动态库
的区别 什么是库 库:也叫做代码库,把一个或一些目标文件合并在一起方便使用,有
静态库
和共享库两种。
静态库
:在链接时把库的二进制指令赋值到调用模块中。
动态库
:也叫作共享库,会和调用者一起加载到内存,到执行调用语句时会从程序的调用位置跳转到共享库中运行。 优缺点:
静态库
的优点是运行速度快,但维护麻烦,当
静态库
中的内容更新后需要重新编译程序,使用静态编译出的可执行文件会比共享库大。 共享库的优点是使
静态库
和
动态库
1、
静态库
和
动态库
有什么不同? 1.1、编译时的链接方式不同
静态库
采用静态链接,
动态库
采用动态链接。 使用
静态库
的时候,
静态库
和调用程序链接打包成了一个可执行文件。所以可执行文件比较大,想要升级
静态库
的话,就必须重新编译,全量升级。编译完成之后就不再需要
静态库
,也就是说运行时不需要
静态库
。 使用
动态库
的时候,
动态库
和调用程序不会链接打包在一起。所以可执行文件较小,想要升级
动态库
的话,只需要替换相应的
动态库
即可,不需要重新编译,不需要替换整个可执行文件,可实现增量升级。简单来说就是编译时不需要
动态库
Linux/Unix社区
23,223
社区成员
74,537
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章