分类: LINUX
2016-10-25 19:10:37
命令/程序 |
说明 |
用途 |
注意 |
ld |
是GNU Binutils提供的链接器。用于将多个可重定向目标文件、共享库文件链接成一个可执行文件或共享库文件。 |
#ld -dynamic-linker /lib/ld-linux.so.2 helloworld.o -o helloworld /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crti.o /usr/lib/gcc/i686-linux-gnu/4.6/crtbegin.o -lc /usr/lib/gcc/i686-linux-gnu/4.6/crtend.o /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crtn.o:链接helloworld.o成helloworld |
#gcc会调用ld做链接。 |
ld.so |
即动态加载器(/lib/ld-linux.so.2),很多人也称之为动态链接器。被自动执行,用于寻找可执行文件所需要的共享库,并加载。 |
|
#ld.so不能直接在命令行下执行,在执行程序时会自动执行。 |
ldd |
是shell命令。用于查看目标文件所依赖的共享库。 |
#ldd main:打印出main所依赖的共享库,包括动态加载器(/lib/ld-linux.so.2)路径。 |
#ldd属于shell命令,而非一个可执行程序。 |
ldconfig |
是一个共享库管理程序,位于/sbin目录下。用于使共享库为系统所共享。 |
#主要是在默认搜寻目录(/lib和/usr/lib)以及共享库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的共享库(格式如lib*.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的共享库名字列表。ldconfig通常在系统启动时运行,而当用户安装了一个新的共享库时,就需要手工运行这个命令。 |
|
#ldconfig -p | less:打印出系统当前缓存文件中所保存的所有共享库。 |
|
||
|
|
|
|
注:在Linux中,动态链接库的文件格式跟共享库是一样的。