【发布时间】:2014-01-10 17:47:14
【问题描述】:
在与我正在使用的特定工具链进行交叉编译时,我无法确认我对 rpath-link 工作原理的理解(尽管我认为这是一个普遍适用于交叉编译的普遍问题)。
当我查看在构建库和应用程序时传递给编译器和链接器的标志时,我看到以下传递给链接器:
-Wl,-rpath-link,/home/Dev/env/sys/crosscompiletoolchain/armle-v7/lib/
所以这是一条嵌入到共享库中的路径,该库正在为我的开发机器上的目标设备构建。这是有道理的,因为我会在部署到设备之前在开发机器上进行所有最终链接。当我最终部署到设备时(即共享库 + 应用程序),这些共享库不会有无用的 rpath 链接吗?
无论如何,构建的库和应用程序似乎在目标上运行良好,如果我不得不猜测,我会说它是因为应用程序具有由设备操作系统提供的环境,其中 /lib/ 作为其之一默认库搜索路径(rpath-link 仅指定要搜索的第一组目录)。这是正确的吗?
【问题讨论】:
标签: cross-compiling