我正在尝试按照此说明http://www.wigwag.com/devblog/cross-compile-node-js-for-arm/#comment-1419并在一段时间后为 arm 处理器交叉编译 node.js我在 ld 上得到一个“错误的 -rpath 选项”。有谁知道我该如何解决?
问问题
2746 次
1 回答
2
我实际上写了那篇文章......在尝试解决同样的问题时遇到了这个问题。
显然,在我们现在使用的 CodeSourcery 二进制文件(gcc-4.4.4-glibc-2.11.1-multilib-1.0 通过飞思卡尔的工具)中,ld 命令不再喜欢 rpath 开关——就像你的问题一样。在任何情况下,您都可以按照本论坛中的建议切换到 g++ 来解决此问题: https ://groups.google.com/forum/?fromgroups=#!topic/nodejs/uzHnSBhEp6g
以下是一个工作解决方案的要点:
https ://gist.github.com/edhemphill/5094239
所以做这个改变:
export LD="${PREFIX_BIN}-g++"
进一步说明:
那里的时髦-Wl,-rpath-link,${X}
语法是将开关传递-rpath-link X
给链接器。这是必需的,以便您的节点二进制文件的共享库在您的 ARM 平台上运行时可以找到它们的共享库。幸运的是,大多数共享库的混乱都不是问题,因为节点链接如此之多是静态的。
http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_3.html
于 2013-03-05T21:10:24.947 回答