我正在尝试从 node.js 应用程序连接到 DB2。我决定使用db2 节点模块。首先安装的说明db2.js
告诉您node-gyp
像这样安装:
sudo npm install -g node-gyp
这似乎对我有用。
然后我尝试使用以下命令安装 db2.js:
sudo npm install -g db2
然后我得到这个错误:
...
cc1plus: error: unrecognized command line option "-std=c++0x"
...
gyp ERR! node -v v0.10.9
gyp ERR! node-gyp -v v0.9.6
查看node-gyp的先决条件,它说我需要 gcc。在我的系统上对 gcc 做一个 man 表明该-std
选项只支持一些非常旧的编译器,例如c++98
,gnu99
等。我有 gcc 版本4.1.2 20080704 (Red Hat 4.1.2-50)
。
所以我有几个问题。还有其他方法可以从节点连接到 db2 吗?如果我继续使用 db2.js,那么我现在需要做什么,升级我的 gcc 或安装c++0x
编译器?(我认为那是 C++ 版本 11)。
祝我好运。
编辑:
我在我的 linux 服务器上升级 gcc 时遇到问题,所以我尝试在我的树莓派上安装作为测试:
sudo npm install -g node-gyp
cd /usr/lib/node_modules
sudo git clone https://github.com/herzi/db2.js.git
sudo node-gyp configure
sudo node-gyp build
在最后一个命令中,我收到此错误:
In file included from ../src/binding.cc:3:0:
../src/connection.hh:6:20: fatal error: sqlcli.h: No such file or directory
compilation terminated.
我猜那是 DB2 Client 头文件,所以我可能还需要安装它。
编辑 2
我在我的系统上安装gcc
在不同的目录中。然后我更改了/usr/bin
for中的符号链接gcc
并g++
指向我的新 gcc 和 g++(在 gcc 中)。现在我得到了与sqlcli.h
我的 pi 相同的错误。是时候获取 DB2 客户端了。
嗯。我有 db2 客户端 9.1.2。binding.gyp
根据 db2文件中的一些搜索,我需要 9.7 。
编辑 3
我安装了“IBM Data Server Runtime Client V9.7”,但文件夹sqlcli.h
中没有/opt/IBM/db2/V9.7/include
!我在另一台机器上有一个 V9.1.3,它确实有一个包含文件夹。所以我使用我的一篇旧博客文章安装了“IBM Data Server Client 9.7”来帮助我。现在我strcmp
从未声明的 node-gyp 构建中收到错误。我敢打赌我需要设置一个 lib 包含或节点环境变量。