rpath 全称是run-time search path,规定了Linux下可执行文件在寻找.so文件时的第一优先位置。比如我们想要指定可执行文件运行优先在当前目录下寻找.so 文件,则使用gcc/g++编译时加上以下选项:
-Wl,--disable-new-dtags,-rpath,'$$ORIGIN'
$ORIGIN表示so文件当前的存放目录,其他依赖库和要编译的so库放在同一级目录。
其中-Wl参数用来将GCC的命令行参数传递给ld命令。
--disable-new-dtags表示使用的是rpath,去掉后编译器默认使用runpath。