Cra*_*urg 78 linker gcc shared-libraries ld
gcc
并ld
提供了许多方法来指定库的搜索路径 - 其中包括-rpath
和-L
标志.这些联机帮助页显示这两个标志之间没有差异,有效地说每个标志都会向库搜索路径添加一个库.但两个旗帜完全相同的事情似乎很奇怪.这两个选项之间有什么区别?
der*_*ert 90
您必须阅读一些过时的联机副本(强调添加):
-rpath = dir
将目录添加到运行时库搜索路径.
将ELF可执行文件与共享对象链接时使用此方法.所有-rpath
参数都连接在一起并传递给运行时链接程序,后者
使用它们在运行时查找共享对象.
与
-L searchdir
--library-path = searchdir
将路径searchdir 添加到ld将搜索
归档库和ld控制脚本的路径列表中.
因此,-L
告诉ld
在链接时查找要链接的库的位置.当您在构建树中构建库时,可以使用此(例如),这些库将放在正常的系统库路径中make install
.--rpath
另一方面,将该路径存储在可执行文件中,以便运行时动态链接器可以找到库.当库位于系统库搜索路径之外时,可以使用此选项.