在linux中预加载动态加载的库

时间:2014-05-02 04:41:30

标签: linux ssl segmentation-fault ld centos6

我有一个7岁的游戏,朋友建造的&我剩下很少的源代码。 它在CentOS 4.8及更低版本上运行完美,所以我认为这是一个TLS错误。我转移了一个新的文件夹,其中包含程序调用的所有CentOS 4.8库到新的... 我正在尝试将它在ldd中调用的旧库专门加载到该程序,。这就是我正在尝试的:

LD_PRELOAD="/glibs/ld-linux.so.2 /glibs/libc.so.6 /glibs/libgcc_s.so.1 /glibs/libm.so.6 /glibs/libpthread.so.0 /glibs/libstdc++.so.5 /glibs/libz.so.1 /glibs/libxml2.so.2" /home/g/gameserver

我一直收到细分错误错误,有人知道为什么吗?也许我不完全理解LD_PRELOAD做什么或什么。如何在不弄乱原件的情况下加载旧库? 提前致谢!

1 个答案:

答案 0 :(得分:1)

LD_PRELOAD更常用于在使用普通函数之前覆盖库中的功能(例如,自定义malloc,socksify所有套接字等)。您可能需要的是将所有旧库放入它们自己的目录中,然后设置LD_LIBRARY_PATH,以便它首先尝试在此目录中查找库。