静态库vs动态库
静态库=static library=static lib动态库=dynamic library=dynamic lib=dylib- 静态还是动态,是属于程序运行时,去加载(其所依赖的,第三方的,其他的)库时的方式:
- -》属于程序运行的linking链接阶段
- -》所以:
动态库=dll=dynamic link library=动态链接库
- -》所以:
- -》属于程序运行的linking链接阶段
- 加载别的库时,如果是动态方式,那么被加载的第三方库,可被多个其他程序所加载,多个程序共享此库
- -》所以:
动态库=共享库=shared library=shared lib
- -》所以:
- 静态还是动态,是属于程序运行时,去加载(其所依赖的,第三方的,其他的)库时的方式:
一般来说,能谈及到库的加载是动态还是静态,往往是属于程序(app,软件等)的内部运行机制中的编译和链接的方面的领域,属于典型的编译原理方面的知识
-》普通软件使用者,往往不需要关心
-》作为程序开发人员,研究程序运行机制和原理的人,往往才需要关心
举例
ffmpeg
比如:
中:
【已解决】mac中下载和安装最新版的ffmpeg
时遇到的:
下载ffmpeg库时,Linking提供static和shared的方式:
- static:The recommended default bu old. No dll or dylib files
- 图
- 说明
- 不依赖于dll或动态库文件
- 图
- shared:Executables that depend on the included dll or dylib files
- 图
- 说明
- 依赖于所包含的dll或动态库文件
- 图

