1

単一の lib パスにリンクする実行可能ファイルが多数あります。たとえば、実行可能ファイルは (たとえば)とにfooリンクしています。後者は私が自分で作成したものです。サード パーティのライブラリを変数に配置し、ライブラリを 経由でリンクすると、makefile の行は次のようになります。libboost_system.solibfoo.soLDLIBS-lfoo

foo: objects
    $(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS) -lfoo

しかし、readelf私には自分の道が見えます!

$ readelf --dynamic foo 

Dynamic section at offset 0x3c68 contains 48 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [/home/username/foo_dir/lib/libfoo.so]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_system.so.1.58.0]

私自身のライブラリは、絶対パスを持つ唯一のライブラリです。

patchelf --replace-neededmakefile のみを使用して、つまりorを使用せずに、この怪物を取り除くにはどうすればよいchrpathですか?

4

0 に答える 0