7

ほとんどのソフトウェアが Glibc に対してコンパイルされ、他のいくつかのソフトウェアが uClibc に対してコンパイルされている奇妙な Linux システムがあります。

Linux は標準のディストリビューションであるため、起動して実行すると、glibc から標準のダイナミック リンカ (/lib/ld.so.1) が呼び出されます。

実行可能ファイルを起動する前に動的ローダーを指定する方法を探しているので、uClibc に対してコンパイルされたソフトウェアを実行したい場合、uClibc 動的ローダーを使用する起動メカニズムを定義できます (/lib/ld-uClibc.so.0 )。

何か案は?

4

3 に答える 3

6

実行可能ファイルを起動する前に動的ローダーを指定する方法を探しているので、uClibc に対してコンパイルされたソフトウェアを実行したい場合

リンカー引数を使用して、に対してビルドするときに、正しい動的ローダーを指定する必要があります。例えばuClibc--dynamic-linker

gcc -nostdlib -Wl,--dynamic-linker=/lib/ld-uClibc.so.0 \
   /lib/uClibc-crt1.o main.o -L/path/to/uClibc -lc
于 2014-08-18T01:26:32.237 に答える
0

PT_INTERP を設定して、優先する ld.so デバイスを優先する代替インタープリターを指すようにする必要があるように見えます。elf(5) の man ページを参照してください。あなたが持っているものと見ているものをダンプするには、 readelf を参照してください。ld-linux-xxx.so.x を思いついたものに変更しようとしています。

実際、INTERP として別の ld.so を指定したいだけのように見えます。

于 2014-08-16T22:39:54.133 に答える