问题
我正在尝试将遗留应用程序的构建过程从较旧的 Solaris 计算机迁移到 Linux,特别是 RHEL 7.7。该应用程序最初是使用 Solaris Studio(现在称为 Oracle Developer Studio)构建的。在安装了尽可能多的依赖项并调整编译标志后,我能够将代码编译成各种可执行文件。
当我尝试从命令行运行其中之一时,我得到以下信息:
$ ./myexecutable
bash: /path/to/my/myexecutable: /usr/lib/amd64/ld.so.1: bad ELF interpreter: No such file or directory
我的尝试
看起来它正在寻找旧的动态链接器,它支持链接存档文件(也称为.a
文件)。通过符号链接使用ld-linux.so.2
会产生一条错误消息,指出库已损坏。
$ ./myexecutable
bash: /path/to/my/myexecutable: Accessing a corrupted shared library
我也发现了/usr/share/man/man8/ld.so.8.gz
。我将其解压缩并创建了一个符号链接,/usr/lib/amd64/ld.so.1
但这产生了与上面相同的错误。
使用yum whatprovides
我找不到任何提供ld.so.1
.我唯一能想到做的另一件事就是追踪该版本glibc
的源代码ld.so.1
并尝试对其进行编译。
如果您知道如何使用ld.so.1
RHEL 7.x (AMD64) 或某种允许我在不使用该共享库的情况下运行我的程序的解决方法,请告诉我。