所谓动态链接库不同的系统上都会有,DLL是win环境的,Linux的so文件。
它们都是由系统负责加载的共享运行库,所以肯定需要在系统中存在才能保证加载成功。
仅就DLL来说,编译为动态链接库的函数需要用专门的语法予以指明,此外还需要编译时配置好正确的编译选项,形成合适的格式。
它是一种特定格式的二进制对象文件。可以由某种机制进行加载入内存供其他需要的程序调用。
里面的各个函数对象都是有特定的组织方式的。
当可执行文件运行到需要调用动态链接库库中函数时,大致会如下处理
1. 查看函数是否加载,如果没有加载则请求系统加载,系统会从已注册的库或者可执行文件的合理搜索路径中加载对应文件,注意动态库一般会整体加载,但调用时可能只需要部分。
2.按函数名去调用加载后的对应处理部分。