ベンダー提供のクロスコンパイル ツールチェーン (明らかに OpenEmbedded の派生物) を使用すると、サードパーティ (オープン ソース、社内でコンパイル) ライブラリへの絶対パスを埋め込むことができません。次の gcc コマンド ラインを使用します。
arm-linux-gcc test_connect_send.o gprs_connect.o \
/package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgprs_stuff.so \
/package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libpower_supply_stuff.so \
/package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgsm_stuff.so \
/package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libtcp_stuff.so \
/package/host/aspl.es/vortex-1.1.0/lib/libvortex-1.1.so \
/package/host/aspl.es/axl-0.5.6/lib/libaxl.so.0 -o test_connect_send
objdump 言います:
Dynamic Section:
NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgprs_stuff.so
NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libpower_supply_stuff.so
NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgsm_stuff.so
NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libtcp_stuff.so
NEEDED libvortex-1.1.so.0
NEEDED libaxl.so.0
NEEDED libgcc_s.so.1
NEEDED libc.so.6
私のベンダーのライブラリにはフル パスがあり、aspl にはありません。また、埋め込まれた名前が、コマンド ラインで指定したものとどのように異なるかに注目してください。理由 (誰が私のパスをいじっているのか) とその解決方法を知りたいです。
ps: RPATH については知っていますが、それは私が探している答えではありません