本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。
SylixOS的库分为静态库和共享库(也称作动态库或动态链接库),二者的不同在于库代码被载入的 时间不同:
- 静态库在程序编译的时候被链接到目标代码中(文件扩展名通常为.a),程序运行时不再需要动态装载该库。如果多个应用程序都需要使用相同的静态库,则每一个应用程序代码部分都链接了此静态库,因此应用程序代码体积较大;
- 动态库在程序编译时并不会被链接到目标代码中(文件扩展名通常为.so),而是在程序运行时才被载入,因此在程序运行时目标系统中需要存放动态库文件。多个应用程序使用同一动态库时,动态库在内存中被几个应用程序进程所共享,因此应用程序代码体积较小。