Link 与 -rpath=/usr/local/lib 有效,-rapth=$ORIGIN 无效

Link with -rpath=/usr/local/lib works, -rapth=$ORIGIN does not

我正在开发嵌入式 Linux 目标,gcc 9.2。如果我 link 和 -rpath=/usr/local/libreadelf 实用程序会按预期显示 RPATH 条目。如果我 link 和 -rpath=$ORIGINreadelf 不显示 RAPTH,也没有涉及 ORIGIN。 link 命令似乎是正确的:x86_64-poky-linux-g++ ... -Xlinker -rpath=$ORIGIN ...。有什么想法吗?

简单地键入 $ORIGN 会导致您的 shell 在将值传递给链接器之前扩展变量。由于您可能没有 ORIGIN 环境变量,因此您一无所获。

您需要防止 shell 扩展,以便 $ORIGIN 字面上传递给链接器 - 为此,需要使用单引号。双引号不起作用,因为变量是用双引号插入的。