我正在尝试按照此说明为arm处理器交叉编译node.js http://www.wigwag.com/devblog/cross-compile-node-js-for-arm/#comment-1419一段时间后,我在 ld 上收到“错误的 -rpath 选项”。有谁知道我该如何解决它?
最佳答案
我实际上写了那篇文章...只是在尝试解决相同问题时遇到了这个问题。
显然,在我们现在使用的 CodeSourcery 二进制文件中(通过 Freescale 工具的 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
传递给链接器。这是必需的,以便 Node 二进制文件的共享库在 ARM 平台上运行时可以找到它们的共享库。幸运的是,大多数共享库的困惑都不是问题,因为 Node 静态链接如此之多。
http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_3.html
关于node.js - 尝试为arm交叉编译node.js时错误的-rpath选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362290/