百度百科:链接
静态链接
静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。
例如,在 windows 中,把链接的 dll 文件也打包到程序里面去,到时候就直接引用程序里面的 dll 就行。
动态链接
动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。当要执行所调用DLL中的函数时,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。
例如,在 windows 中,不会将 dll 打包到程序里,而是在运行时调用操作系统上的 dll。
dll、so
dll 和 so 都是二进制的函数库,分别对应 windows 和 linux