0

私は現在、他のライブラリへの静的リンクと動的リンクの組み合わせを使用する共有オブジェクト ライブラリを構築しています。動的にリンクしたいライブラリの 1 つが librt です。ただし、-lrt が libtool に渡される引数のセットに追加されている場合、ldd からの出力など、必要なライブラリへの参照が得られません。

linux-vdso.so.1 =>  (0x00007fff5273b000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5cd720f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5cd6e50000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5cd6c39000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5cd693d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5cd779d000)

ただし、生成された libtool スクリプトをハックして -lrt を一連の postdeps に追加すると、適切なリンクが得られます。

linux-vdso.so.1 =>  (0x00007fffb91ff000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1f5ae23000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1f5aa64000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1f5a84d000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1f5a645000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1f5a349000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1f5b3b1000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1f5a12b000)
4

1 に答える 1