Seu compilador foi configurado para definir DT_RPATH
com $ORIGIN
por padrão usando suas especificações internas.
A finalidade de $ORIGIN
é criar executáveis que possam ser movidos para outro local com as bibliotecas compartilhadas das quais eles dependem: se um binário for movido para /alt/opt/bin
e tiver $ORIGIN/../lib
em seu caminho de execução, o vinculador dinâmico primeiro procure por suas bibliotecas em /alt/opt/lib
. Mais detalhes na% man_de% manpage.
O problema com seu compilador é que ele está usando o ld.so(8)
(em vez de DT_RPATH
) reprovado, que é sempre pesquisado primeiro e não pode ser substituído via DT_RUNPATH
. Para evitar isso, tente usar LD_LIBRARY_PATH
to -Wl,--enable-new-dtags
:
gcc -Wl,--enable-new-dtags file.c
Isso direcionará o vinculador a usar gcc
em vez de DT_RUNPATH
para a opção DT_RPATH
, seja na linha de comando ou via especificações. Isso não deveria ser suportado em sistemas mais antigos, mas pelo que me lembro, isso foi há um bom tempo.