什么是LD
我最近在proggit上遇到了一个引用,并且(现在)没有解释它。
我怀疑这可能是它,但我不知道。
如果将LD_PRELOAD
设置为共享对象的路径,那么该文件将在任何其他库(包括C运行时, libc.so
) 之前加载。 因此,要使用特殊的malloc()
实现运行ls
,请执行以下操作:
$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls
您可以通过创建具有相同符号的库并在LD_PRELOAD
指定库来覆盖库存库中的符号。
有些人使用它来指定非标准位置的库,但LD_LIBRARY_PATH
更适合LD_LIBRARY_PATH
目的。
使用LD_PRELOAD
您可以为库提供优先权。
例如,你可以编写一个实现malloc
和free
的库。 通过加载LD_PRELOAD
你的malloc
和free
将被执行,而不是标准的。
上一篇: What is the LD