correct usage of rpath (relative vs absolute)

前端 未结 2 2053
时光说笑
时光说笑 2020-12-24 14:54

When building a binary or library, specifying the rpath, i.e.

-Wl,rpath,

tells the linker where to find the

2条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-24 15:35

    In the case of rpath, it makes no sense to use a relative path, since a relative path will be relative to the current working directory, NOT relative to the directory where the binary/library was found. So it simply won't work for executables found in $PATH or libraries in pretty much any case.

    Instead, you can use the $ORIGIN "special" path to have a path relative to the executable with
    -Wl,-rpath,'$ORIGIN' -- note that you need quotes around it to avoid having the shell interpret it as a variable, and if you try to do this in a Makefile, you need $$ to avoid having make interpret the $ as well.

提交回复
热议问题