我需要在32位系统上编译node.js以与我已拥有的代码兼容。在32位系统上编译node.js
我从nodejs.org的源代码开始编译它。然后,我开始在common.gypi文件中更改第164-166行。它是:
164 [ 'target_arch=="x64"', {
165 'cflags': [ '-m64' ],
166 'ldflags': [ '-m64' ],
167 }],
,现在是:
164 [ 'target_arch=="x64"', {
165 'cflags': [ '-m32' ],
166 'ldflags': [ '-m32' ],
167 }],
当我试图再次使,我得到这些错误:
../deps/v8/src/execution .h:259:错误:整型常量对于'long'类型来说太大 ../deps/v8/src/execution.h:260:错误:整型常量对'long'型号来说太大 ../deps /v8/src/execution.h:259:错误:函数调用不能出现在常量表达式中 ../deps/v 8/SRC/execution.h:260:错误:一个函数调用不能出现在常数表达式
这些错误是指这些行:
#ifdef V8_TARGET_ARCH_X64
static const uintptr_t kInterruptLimit = V8_UINT64_C(0xfffffffffffffffe);
static const uintptr_t kIllegalLimit = V8_UINT64_C(0xfffffffffffffff8);
相信这个代码是从谷歌的V8源码。
我将不胜感激任何有关如何解决这些特定编译错误和/或如何在32位系统上编译64位node.js的建议。大部分我所做的研究是如何为64位系统编译32位的东西。
只是为了澄清:您在x86_32上,并且想要生成一个x86_64版本的节点?你为什么不简单编译x86_32位node.js? – phihag 2012-08-06 21:02:12
@phihag 请问我可以在哪里找到x86_32 node.js?我试着用Google搜索它并查看nodejs.org并找到这些其他版本文件:http://nodejs.org/dist/v0.8.5/但它没有指定它是否为32位。 我的老板把我放在这个任务上,所以他可能有一个目的,让我下载当前的源代码。我会发现是否允许x86_32位。 感谢您的回复! – Dorothyy 2012-08-06 23:52:28
添加了一个描述如何为x86_32编译节点的答案。请注意,设置交叉编译基础架构可能非常复杂。如果您遇到任何问题,请随时提出新问题和/或发表评论。 – phihag 2012-08-07 08:31:13