|
1
2
最简单的方法是简单地安装 VirtualBox CentOS 3 或者任何合适的2.4内核旧发行版,并在此基础上构建/测试您的应用程序。 因为你的内核太旧了,所以你很可能依赖于2.4内核中没有的一些特性,所以你必须追踪并修改它。 错误可能只是静态链接到glibc造成的,您可以尝试动态链接到glibc,并静态链接所有其他lib,但要向后兼容,您必须在旧的glibv系统上构建应用程序。使用 lsb 构建工具也会有所帮助 |
|
|
2
1
对于我的用例,我不能静态链接我的支持库。而且,当前的Linux发行版似乎在某些情况下很难做到这一点。但我需要我的应用程序二进制文件在10年前的Linux系统上运行。
所以,我这样做了:
这给了我一个现代的编译器,可以编译在非常旧的Linux系统上运行的二进制文件。我对32位和64位处理器都这样做了。
从那里,我创建了一系列脚本,允许我使用docker包含的交叉编译器来构建所有支持库。我确保将已编译二进制文件的rpath设置为相对于二进制文件的路径(使用
从那里,我相应地打包了我的二进制文件,以及所有支持的lib。 是的,这有点痛苦,但它产生了一个功能齐全的二进制文件,能够在非常旧的linux系统上工作,而不必在多个虚拟机上安装不同的linux发行版。
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
|
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 1 年前 |
|
|
Marco · PyCharm Linux系统文件上os.stat异常 1 年前 |