社区
进程/线程/DLL
帖子详情
关于动态库与静态库,都在什么时候用到?
myfeng
2008-07-17 05:43:59
想请教一下,两者有什么区别,分别在什么时候用到
...全文
450
8
打赏
收藏
关于动态库与静态库,都在什么时候用到?
想请教一下,两者有什么区别,分别在什么时候用到
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Daixiu
2008-07-17
打赏
举报
回复
动态库一个文件可被多个进程共享节省了资源。
Daixiu
2008-07-17
打赏
举报
回复
动态链接库(DLL)分隐式调用和显示调用。
隐式调用需要.h、.lib和.dll三个文件,其中,lib文件为工程提供DLL的输出函数和变量名,lib文件可以在编译器中连接,也可用#pragma语句连接。
显示加载只需要.dll文件就可以了
用LoadLibrary 加载,GetProcAddress 获得接口函数或变量,FreeLibrary 卸载Dll。
wanshi131
2008-07-17
打赏
举报
回复
dll可以自动加载和动态加载,自动加载需要对应生成的lib库
只要使用DLL就需要提供DLL
lib库分为包含代码的和不包含代码仅用于取函数地址的
oo_v_oo
2008-07-17
打赏
举报
回复
[Quote=引用 4 楼 myfeng 的回复:]
是这样的,我想写一个硬件的接口库,当然生成库的时候用到了硬件本身提供的dll,最后我生成分别生成了我自己的dll,lib库文件,那么别人在使用我提供的库时,还需要用到硬件本身提供的dll或者lib吗?
[/Quote]
当然需要
myfeng
2008-07-17
打赏
举报
回复
是这样的,我想写一个硬件的接口库,当然生成库的时候用到了硬件本身提供的dll,最后我生成分别生成了我自己的dll,lib库文件,那么别人在使用我提供的库时,还需要用到硬件本身提供的dll或者lib吗?
fox000002
2008-07-17
打赏
举报
回复
两者的功能应该是一样的,都是一些 code 的封装
差别在于动态库实际的 code 是在 DLL/so 文件中,需要时载入执行
静态库类似于 object 文件,程序在连接时嵌入了实际的 code
动态库使用比较灵活一些,可以用于 IPC,程序体积可以有效压缩
化外之民
2008-07-17
打赏
举报
回复
UNIX,LINUX下使用静态库。
thirddata
2008-07-17
打赏
举报
回复
静态库,编译程序的时候和exe直接编译在一起了,运行过程中不需要dll
动态库,是动态加载的,运行过程中动态调用。
动态库
与
静态库
的区别
动态库
与
静态库
的区别
动态库
和
静态库
都是代码的二进制的封装形式。 区别: 1、
动态库
对于
动态库
来说,编译可执行文件时候,并没有把
动态库
的内容拷贝到可执行文件中,只是做了一个标记,表示可执行文件需要
用到
某某库。这样的话运行该可执行文件时,需要把所需要的
动态库
都下载到目标板,并且配置LD_LIBRARY_PATH。 2、
静态库
对于
静态库
来说,编译可执行文件时,会把
静态库
中所有的内容编译到可执行文件中,运行时,直接运行。如果要在目标板上运行,就不需要把
静态库
下载到板子上。
动态库
两个明显的优势: (1)当接口
静态库
调用
动态库
或者
静态库
(Cmake例子)
1.
静态库
无论调用
动态库
还是
静态库
都只需要include库的头文件 2. 要在调用该
静态库
的地方添加库引用,并设置路径。 结论:其实
静态库
调用
动态库
或者
静态库
,只是在
用到
库方法的地方把该方法添加到LIB当中,真正使用的地方才会把这些库LINK起来生成可执行文件。 举个例子 比如在CMake中调用 生成 某个 111.so
动态库
,该 111.so 库依赖 222.a
静态库
,而 222.a 依赖 333.a
静态库
: 那么生成 222.a 库的时候只需要把 333.a 库的头文件包含就可以,然后生
动态库
和
静态库
Linux之
动态库
,
静态库
的详细讲解
Qt
动态库
和
静态库
的创建与使用
前言 c/c++开发中都会
用到
动态库
和
静态库
。首先
动态库
和
静态库
的区别是什么呢? 简单来讲,
静态库
,如果某个程序需要调用了一个
静态库
中的方法,在该程序编译时候会将该
静态库
一起编译进去,即会直接整合到目标程序中,编译成功的可执行文件可独立运行。
静态库
的扩展名一般为“.a”或“.lib” 而
动态库
,某个程序在编译的时候,在程序里只有一个“指向”的位置而已,也就是说当可执行文件需要使
用到
函数库的机制时,程序才会去读取函数库来使用,也就是说可执行文件无法单独运行。
静态库
与
动态库
优缺点大概如下 1、
静态库
优点:
动态库
与
静态库
的调用
目录
静态库
什么是
静态库
? 怎么创建 如何使用
静态库
的第一种使用方法
静态库
的第二种使用方法 动态链接库
动态库
是什么? 怎么创建 如何使用 隐式调用 显式调用
静态库
什么是
静态库
? 我们先来说一下什么是
静态库
,维基百科对其的解释是这样的: 在计算机科学里,
静态库
(英语:Static library, Statically-linked library),或称
静态库
,是一个外部函数与变量的集合体。
静态库
的文件内容,通常包含一堆程序员自定的变量与函数,其内容不像动.
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章