我需要在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/v8/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位东西。