什么是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
