FreeBSD マシンで、実行時に libFoundation.so を見つける必要があるバイナリ「CeeloPartyServer」があります。どちらも同じディレクトリにあります。linker flag を使用して (別のプラットフォームで、クロス コンパイラを使用して) CeeloPartyServer をコンパイルします-rpath=$ORIGIN
。
> readelf -d CeeloPartyServer |grep -i rpath
0x0000000f (RPATH) Library rpath: [$ORIGIN]
> ls
CeeloPartyServer Contents Foundation.framework libFoundation.so
> ./CeeloPartyServer
/libexec/ld-elf.so.1: Shared object "libFoundation.so" not found, required by "CeeloPartyServer"
ライブラリを実行しようとしてもライブラリが見つからないのはなぜですか?
私の正確なリンカー行は次のとおり-lm -lmysql -rpath=$ORIGIN
です。
私のreadelf分析は実際にライブラリrpathが$ORIGINに設定されていることを示しているので、$などをエスケープする必要はないと確信しています。私は何が欠けていますか?