linux – ld.so替代品

我需要让我的 linux可执行文件“编译一次,到处运行”.理论上它是可能的,因为我的程序只使用非常基本的系统调用(系统调用网络IO和文件IO).在实践中,这是一个不同的故事:

我的开发平台是Ubuntu 12.04,它有最新的内核,glibc和工具链.我首先尝试静态链接我的可执行文件,但可执行文件拒绝在centos 5(内核版本2.6.18)上运行.如果可执行文件是动态链接的,则动态加载程序(ld.so)拒绝加载我的可执行文件.我甚至试图发送一个修改过的动态加载器(我修改它以忽略内核版本),libc,libgcc_s,仍然不起作用,因为修改后的加载器总是试图从系统加载libc并忽略随我一起发布的libc可执行文件.

我需要一个动态加载器,它会盲目加载我想要加载的所有东西.谁知道linux上有这样的动态加载器?我不确定我是否正朝着正确的方向前进,所以欢迎提出任何建议.

解决方法

尝试使用CentOS 5作为您的构建计算机,并在较新的平台上运行该可执行文件而不是相反.

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...