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/lib
,readelf 实用程序会按预期显示 RPATH
条目。如果我 link 和 -rpath=$ORIGIN
,readelf 不显示 RAPTH
,也没有涉及 ORIGIN
。 link 命令似乎是正确的:x86_64-poky-linux-g++ ... -Xlinker -rpath=$ORIGIN ...
。有什么想法吗?
简单地键入 $ORIGN
会导致您的 shell 在将值传递给链接器之前扩展变量。由于您可能没有 ORIGIN
环境变量,因此您一无所获。
您需要防止 shell 扩展,以便 $ORIGIN
字面上传递给链接器 - 为此,需要使用单引号。双引号不起作用,因为变量是用双引号插入的。
我正在开发嵌入式 Linux 目标,gcc 9.2。如果我 link 和 -rpath=/usr/local/lib
,readelf 实用程序会按预期显示 RPATH
条目。如果我 link 和 -rpath=$ORIGIN
,readelf 不显示 RAPTH
,也没有涉及 ORIGIN
。 link 命令似乎是正确的:x86_64-poky-linux-g++ ... -Xlinker -rpath=$ORIGIN ...
。有什么想法吗?
简单地键入 $ORIGN
会导致您的 shell 在将值传递给链接器之前扩展变量。由于您可能没有 ORIGIN
环境变量,因此您一无所获。
您需要防止 shell 扩展,以便 $ORIGIN
字面上传递给链接器 - 为此,需要使用单引号。双引号不起作用,因为变量是用双引号插入的。