我需要在 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:错误:整数常量对于“长”类型来说太大 ../deps/v8/src/execution.h:260:错误:整数常量对于“长”类型来说太大了'long' 类型 ../deps/v8/src/execution.h:259:错误:函数调用不能出现在常量表达式中 ../deps/v8/src/execution.h:260:错误:函数call 不能出现在常量表达式中
这些错误指的是这些行:
#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 位的东西。