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