C++ プログラムを Solaris から Linux に移行する際の動的接続

C++ プログラムを Solaris から Linux に移行する際の動的接続

質問

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

関連情報