我有最新版本的node.js构建没有问题.我正在尝试为node.js使用sqlite模块.
对于developseed的node-sqlite3,我按照指示:
git clone git://github.com/developmentseed/node-sqlite3.git
cd node-sqlite3
./configure
make
Run Code Online (Sandbox Code Playgroud)
我安装了npm:curl -k https://npmjs.org/install.sh | sudo sh
并使用npm安装node-gyp:sudo npm install -g node-gyp
在node-sqlite3 configure-d和make-d之后,我尝试用npm安装,我得到这个:
npm install sqlite3
npm WARN install Refusing to install sqlite3 as a dependency of itself
Run Code Online (Sandbox Code Playgroud)
当我研究这个错误时,我发现了这个问题:npm install sqlite3 error我试过:
node-waf clean || true; node-waf configure build
Run Code Online (Sandbox Code Playgroud)
但得到了这个错误:
/usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is deprecated; use hashlib instead
from md5 import md5
Waf: Please run waf from a directory containing a file named "wscript" or run distclean …Run Code Online (Sandbox Code Playgroud) 我需要在32位系统上编译node.js以与我已有的代码兼容.
我从nodejs.org的源代码开始编译它.然后我开始更改common.gypi文件中的第164-166行.它是:
164 [ 'target_arch=="x64"', {
165 'cflags': [ '-m64' ],
166 'ldflags': [ '-m64' ],
167 }],
Run Code Online (Sandbox Code Playgroud)
现在它是:
164 [ 'target_arch=="x64"', {
165 'cflags': [ '-m32' ],
166 'ldflags': [ '-m32' ],
167 }],
Run Code Online (Sandbox Code Playgroud)
当我再试一次时,我收到了这些错误:
../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);
Run Code Online (Sandbox Code Playgroud)
我相信此代码来自谷歌的v8源代码.
我将不胜感激任何关于如何修复这些特定编译错误和/或如何在32位系统上编译64位node.js的建议.我所做的大多数研究都是如何为64位系统编译32位的东西.