如何为大多数系统编译LD_PRELOAD

How to compile LD_PRELOAD for most systems

本文关键字:LD PRELOAD 编译 系统 大多数      更新时间:2023-10-16

我有一个LD_PRELOAD文件。在什么操作系统和条件下,我应该编译这个预加载以在大多数系统(Unix/Linux)上运行。最想要的是FreeBSD,Ubuntu,CenstOS,Solaris。

谢谢!

您需要将其编译为共享库。以下是我通常如何编译我的:

libt.so: t.lo
        g++ -fPIC -O3 -W -Wall -shared -Wl,-export-dynamic -o $@ $^ -lc
t.lo: t.cc
        g++ -c -fPIC -O3 -W -Wall $^ -o $@

然后,要使用它,请在启动该文件之前将库添加到LD_PRELOAD环境变量。如果从bash命令行执行此操作:

LD_PRELOAD=libt.so executable_name -and args
然后,它

只会为该命令行运行设置它,而不会影响您之后启动的任何其他程序。