質問
レガシーアプリケーションのビルドプロセスを以前の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)の使用方法、またはその共有ライブラリを使用せずにプログラムを実行できるいくつかの回避策がわかっている場合は、お知らせください。