官术网_书友最值得收藏!

Dynamic libraries

Dynamic libraries are libraries that are linked at load time. Dynamic libraries are more like executables without an entry point. They contain code needed by your program, and the load-time linker is responsible for providing the location of each required function to your program while your program is being loaded.

It is also possible for your program to link itself while it executes during runtime as an optimization, only linking functions that are needed (a process known as lazy loading). 

Most of the libraries provided by the operating system are dynamic libraries. To see which dynamic libraries are needed by your program, you can use the LDD tool, as follows:

> ldd a.out
linux-vdso.so.1 (0x00007ffdc5bfd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f92878a0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9287e93000)

In this example, we used the LDD tool to list the dynamic libraries needed by our simple Hello World\n example. As shown, the following libraries are needed:

  • vdso: a library provided by the operating system to speed up the process of making system calls
  • libc: the standard C library
  • ld-linux-x86-64: the dynamic linker itself, responsible for lazy-loading
主站蜘蛛池模板: 宜阳县| 来安县| 泽库县| 高唐县| 正阳县| 蓬莱市| 青岛市| 天峨县| 汕尾市| 鄂托克前旗| 麦盖提县| 澳门| 西乌珠穆沁旗| 夏津县| 湾仔区| 台山市| 滦平县| 博白县| 上高县| 梧州市| 庆城县| 清水河县| 平果县| 旺苍县| 铁岭县| 扎囊县| 赞皇县| 巴彦县| 苏尼特左旗| 淮北市| 桐柏县| 团风县| 夏邑县| 邯郸县| 昌平区| 福清市| 鞍山市| 谢通门县| 皮山县| 文昌市| 桐乡市|