动态编译和静态编译
「编译原理」、「操作系统」、「图形学」
====================================
1、动态编译型;
2、静态编译型。
================================
动态编译是指程序源码在编译时,若有需要引用外部程序接口的,如外部库或外部可执行程序,只保存对应库的相关链接。后续该程序在运行时再去系统指定的库路径下寻找所需要的库或程序接口。
这种模式在编译时只会打包自己的源代码,其好处就是编译产物体积小巧,且在加载外部接口时不会有浪费内存空间的问题。其缺点就是运行比较依赖环境的完整性。系统中缺少任何一个程序所需要的外部程序接口都会导致该程序无法运行。
=======================================
与动态编译类型相对,它是指编译时除了对自己的源码编译打包以外,若有要引用到外部库接口的,也一并打包进来。动态编译类型是我要用你我只需要记住你在哪就可以了,而静态编译则是我要用你,你就必须得过来我这边,时刻跟我呆在一起。
因此,静态编译出来的程序,它的体积会比较大,但是它的运行不需要依赖库环境。它还有一个缺点,就是可能会造成内存浪费现象。因为每个可执行程序内部都持有一份依赖库的副本,在需要使用时会将这些一起打包的库都加载到内存中去。如果系统中有多个静态编译型程序都包含有相同的依赖库,那么就会造成同样的库有着多份内存占用的情况。
===============================
https://www.cnblogs.com/chorm590/p/11214009.html
https://blog.csdn.net/weixin_42882784?type=blog
https://zhuanlan.zhihu.com/p/618925299
https://blog.csdn.net/m0_61831106/article/details/141234140