LD_LIBRARY_PATH 和 -rpath 有什么区别

Ju *_*Liu 6 g++ linker-scripts

链接库时,使用-rpath 将动态库的地址传递给ld。我的问题是,如果我在 LD_LIBRARY_PATH 中设置了地址,我的链接过程中还需要 -rpath 标志吗?

chi*_*ill 5

通常,您不需要它,实际上最好不要在可执行文件中编码库搜索路径(该-rpath选项将二进制文件中的路径编码为DT_RPATHDR_RUNPATH

附注。我自己一般的方法是链接可执行文件--rpath选项,而他们在做树和依赖于其他图书馆在构建树,调试方便,但安装时(make install,建立包)重新链接,而不 --rpath选择和留下的任务找到ld.so.conf目标平台的适当动态链接器配置(例如)的共享库。