0

実行可能ファイルに独自のディレクトリからいくつかの共有ライブラリをロードさせようとしているので.、rpath に追加することにしました。しかし、実行しようとすると、.so が見つかりません。readelf -d myexec の結果の重要な部分は次のとおりです。

  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libtoload.so.1]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000f (RPATH)                      Library rpath: [$ORIGIN/.:.]

私のフォルダには以下が含まれています:

-rwxr-xr-x    1 root     root        97148 Apr  3 12:10 libtoload.so.1
-rwxr-xr-x    1 root     root         9873 Apr  3 10:10 myexec

エラー :

/some/folder/ # ./myexec
./myexec: error while loading shared libraries: libtoload.so.1: cannot open shared object file: No such file or directory

注:LD_LIBRARY_PATH環境変数へのアクセス権がなく(実際には存在しません)、他のライブラリは/ libフォルダーにあり、正常にロードされています(ただし、libtoload.so.1を配置できません)そこの。私は実際に別のコンピューターから実行可能ファイルをクロスコンパイルしていますが、ターゲットシステム上のいくつかのコマンドにしかアクセスできません(ツールチェーンはなく、ほとんどがビジーボックスコマンドです)。

編集: /lib/ld-linux.so.3 --library-path ./ ./myexec は機能します

4

0 に答える 0