静态库vs动态库

  • 静态库=static library=static lib
  • 动态库=dynamic library=dynamic lib=dylib
    • 静态还是动态,是属于程序运行时,去加载(其所依赖的,第三方的,其他的)库时的方式:
      • -》属于程序运行的linking链接阶段
        • -》所以:动态库=dll=dynamic link library=动态链接库
    • 加载别的库时,如果是动态方式,那么被加载的第三方库,可被多个其他程序所加载,多个程序共享此库
      • -》所以:动态库=共享库=shared library=shared lib

一般来说,能谈及到库的加载是动态还是静态,往往是属于程序(app,软件等)的内部运行机制中的编译和链接的方面的领域,属于典型的编译原理方面的知识

-》普通软件使用者,往往不需要关心

-》作为程序开发人员,研究程序运行机制和原理的人,往往才需要关心

举例

ffmpeg

比如:

强大的音视频处理工具:FFmpeg

中:

【已解决】mac中下载和安装最新版的ffmpeg

时遇到的:

下载ffmpeg库时,Linking提供static和shared的方式:

Builds - Zeranoe FFmpeg

  • static:The recommended default bu old. No dll or dylib files
      • static_lib_eg_ffmpeg
    • 说明
      • 不依赖于dll或动态库文件
  • shared:Executables that depend on the included dll or dylib files
      • shared_lib_eg_ffmpeg
    • 说明
      • 依赖于所包含的dll或动态库文件

results matching ""

    No results matching ""