尝试交叉编译node.js for arm时出现-path选项错误

时间:2013-01-16 15:46:10

标签: node.js arm cross-compiling

我正在尝试按照此指令http://www.wigwag.com/devblog/cross-compile-node-js-for-arm/#comment-1419交叉编译一个arm处理器的nod​​e.js,并且在一段时间后我在ld上得到一个“bad -rpath选项”。有谁知道我该如何解决?

1 个答案:

答案 0 :(得分: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