4

ライブラリをロードするには、実行可能ファイルが最初に開きます/lib/ld-linux-x86-64.so.2。共有ライブラリのロードに関するすべての機能 (多くのパスでの検索、rpath の使用など) は、これらの機能を実装しているld-linuxため、ロードされた後にのみ機能します。ld-linux

場所は実行可能ファイルにハードコードされているように思えましたld-linux.so(私の実行可能ファイルを呼び出すstringsと、この理論が強化されます)。私の問題は、私の Linux ディストリビューションでは、コンパイラ (g++) がld-linux場所を に設定すること/lib/ld-linux-x86-64.so.2です。Ubuntu (より一般的) では、/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2.

ld-linux.so実行可能ファイルでat を検索できるかどうか疑問に思っていました/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2(これは、私のディストリビューションにもシンボリック リンクとして存在します)。

4

2 に答える 2

7

に追加-Wl,--dynamic-linker=/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2してみてくださいLDFLAGS

于 2013-02-05T14:06:48.613 に答える
1

patchelf を使用して、ld-linux インタープリターへのパスを変更できます。

于 2019-02-23T09:31:54.030 に答える