【发布时间】:2014-02-06 00:02:00
【问题描述】:
我正在为 ARM 平台进行交叉编译。在我链接的许多库文件中,只有极少数有 rpath。
我不知道它来自哪里,因为我将我需要的所有库都复制到了一个文件夹中,然后使用 Netbeans 将它们添加到项目中(在 Ubuntu 下使用 Linaro 编译器)。即使我从命令行编译,输出也是一样的。
我尝试了 patchelf,但它没有删除 rpath。该程序本身可以工作(例如,如果我在搜索库时创建了它正在寻找的路径)。
知道怎么解决吗?
【问题讨论】:
-
您能否提供一些您执行构建和分析二进制文件的步骤示例?
-
我正在使用 Netbeans。我用绝对路径链接我需要的所有库,这就是我所做的。
-
是的,但你也说这个问题似乎与 Netbeans 无关。我不得不用谷歌搜索 Netbeans(称我为 luddite)。问题中的任何内容都无法让我重现,甚至开始理论化您所看到的内容。
-
尝试创建一个更简单的示例并将其发布。我猜 rpath 来自您链接的库之一或来自编译器。
-
您的问题并不完全清楚。该主题似乎表明是您的可执行文件本身获得了不需要的 RPATH,而问题表明是库文件本身有问题。它是哪一个?此外,这些“许多库文件”是您自己编译的,还是您从其他地方获得的?您是在谈论静态库还是动态库(甚至可能只是普通的目标文件)?