我下载了glibc源代码,修改了标准库的一部分,然后使用
请注意,两台计算机都有x86-64处理器。此外,两台计算机都安装了gcc 4.4。虽然未能运行的计算机除了gcc 4.4之外还安装了gcc 4.1.2。然而,一台计算机正在运行Ubuntu 10.04(我编译的),而另一台计算机正在运行CentOS 5。这是段错误的原因吗?如何解决这个问题?请注意,我没有在CentOS 5的计算机上拥有管理员权限。
LD_PRELOAD
将修改后的标准库(以.so文件形式)与我的程序一起使用。但是,当我将该.so
文件复制到另一台电脑并尝试在那里使用LD_PRELOAD
运行同样的程序时,出现了段错误。请注意,两台计算机都有x86-64处理器。此外,两台计算机都安装了gcc 4.4。虽然未能运行的计算机除了gcc 4.4之外还安装了gcc 4.1.2。然而,一台计算机正在运行Ubuntu 10.04(我编译的),而另一台计算机正在运行CentOS 5。这是段错误的原因吗?如何解决这个问题?请注意,我没有在CentOS 5的计算机上拥有管理员权限。
LD_PRELOAD
,您不必修改标准库,只需创建一个新的库来替换标准库中的一些函数即可。这可能更容易实现。 - Dietrich Eppset environment LD_PRELOAD=blah
。 - Tobu