文档章节

node-oracle windows下编译安装

satanrabbit
 satanrabbit
发布于 2014/12/01 09:17
字数 959
阅读 2.6K
收藏 5

步骤

1安装 oracle 11g

oracle官网下载orcale 11g ,【现在还是别用10g了,反正我没有用】

2 安装 microsoft visual studio2012 express

使用microsoft visual studio2013安装没有成功,不过应该2013也可以。以后再试。

3 安装nodejs

最新版最好【暂时只能用node0.10版本的,0.12版本的不行】,npm在1.3.15版本以前node-gyp 在编译时会调用VCBuild.exe,在vs2012下是找不到的VCBuild.exe的。

4 安装 oracle instant client

【32位系统选择对应的32位版本】

下载 Version 12.1.0.1.0 中的 instantclient-basic-windows.x64-12.1.0.1.0.zipinstantclient-sdk- windows.x64-12.1.0.1.0.zip; 并把它们解压到 C:\instantclient_12_1 文件夹中, 由于两个 zip 中的文件各不相同, 所以合并到同一个文件夹也不会发生覆盖。

5 设置环境变量

OCI_INCLUDE_DIR=C:\instantclient_12_1\sdk\include
OCI_LIB_DIR=C:\instantclient_12_1\sdk\lib\msvc\vc11
OCI_VERSION=12
Path=c:\instantclient_12_1\vc11;c:\instantclient_12_1;...

确保 Path 中 c:\instantclient_12_1\vc11 在 c:\instantclient_12_1 前面,最好放在最前面,安装了oracle后,如果放到后面可能会调用oracle安装目录下的文件,放在后面时,有时候编译失败。 【在编译完成后,为了安装oracle官网的node-oracledb , 更改 OCI_LIB_DIR=C:\instantclient_12_1\sdk\lib\msvc, 原来编译好的 oracle驱动可以继续使用,也就是说,OCI_LIB_DIR只用于编译过程。】

6 安装 python2.7

安装python2.7 ,3.x版本不行,node-gyp不支3.x·, 环境变量path里添加 ;C:\Python27,如果安装了3.x版本的要从环境变量里移除!

7 安装 node-gyp

cmd命令窗口里:

npm install -g node-gyp

8 安装 node-oracle

cmd:

npm install -g oracle

建议全局安装,因为在不同的机器上需要编译不同的版本,省得再在协同开发时,导致不同人员的冲突,尤其是使用GIT时候。

错误处理

1 MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe".

报错内容:

 MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe".
 If the component is not installed, either 1) install the Microsoft Windows SDK
 for Windows Server 2008 and .NET Framework 3.5, or 2) install Microsoft Visual
  Studio 2008.  [C:\Users\Administrator\AppData\Roaming\npm\node_modules\oracle\
build\binding.sln]
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Administrator\AppData\Roaming\npm\node_modules\oracle
gyp ERR! node -v v0.10.21
gyp ERR! node-gyp -v v0.10.10
gyp ERR! not ok
npm ERR! weird error 1
npm ERR! not ok code 0

原因

npm在1.3.15版本以前node-gyp 在编译时会调用VCBuild.exe,在vs2012下是找不到的VCBuild.exe,vs2012及以后版本是msbuild.exe作为编译器。

解决:

将npm 的 msvs的编译器设置为vs2012 cmd执行:

npm config set msvs_version 2012 --global

2 中文字符乱码

报错内容:

中文乱码

原因:

oracle 数据库和客户端需要统一设置字符编码;

解决:

  1. 建立oracle数据库时候设置数据库的字符编码 选择utf-8编码,默认设置中国的。

  2. 添加环境变量:

    NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8

3 编译成功后,再安装完Oracle后无法加载node-oracle模块

错误描述:

在编译安装完成,并成功运行后,又安装 Oracle到本机,再次运行后,报错无法加载node-oracle模块。

原因:

编译时安装的模块是基于 instantclient_12_1进行编译的,以来模块也是instantclient_12_1,但再次安装oracle后,会在环境变量里的最前面添加: c:\app\SatanRabbit\product\11.2.0\dbhome_1\bin;

\dbhome_1\bin 里面的 oci.dll 等于编译时配置的不一致,导致无法加载依赖项。

解决:

在环境变量 Path中,把 c:\app\SatanRabbit\product\11.2.0\dbhome_1\bin; 放置在 c:\instantclient_12_1 后面。

© 著作权归作者所有

satanrabbit
粉丝 4
博文 27
码字总数 9691
作品 0
河西
程序员
私信 提问
加载中

评论(1)

_小卒过河_
_小卒过河_
对msbuild项目文件熟悉吗?就是msbuild的Makefile。
使用node-oracledb驱动的Electron应用,打包发布版到新电脑上无法运行,是对所有电脑都有运行环境要求吗?

我在windows电脑上成功安装了运行node-oracledb驱动的所有运行环境,并在项目中成功npm install oracledb,并成功运行项目,也成功打包了我的electron应用,接下来,发布版的安装包或者运行包...

乐帅
2017/08/31
253
0
Windows 7 下 Node.js 连接 Oracle

安装 Oracle 11g express 详见: 《Windows 7 x64 安装 Oracle 11g Express》 2. 安装 Microsoft Visual Studio 2012 Express 在 Microsoft 官网注册并下载 Visual Studio 2012 Express for W......

sailtseng
2013/09/26
1.8W
24
Win7下Node.js连接oracle数据库

最近一个项目需要使用Nodejs连接oracle数据库,在网上查了很久,按照网上的做法一直都无法成功,报错信息是node-gyp rebuild相关的,最后经过不断试验,发现手动编译后可以成功. 首先需要安装nod...

lxsy
2015/01/05
785
0
React Native For Android 环境搭建

一. 环境搭建 1. JDK更新 http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 使用最新的JDK或者8u91版本 2.Android SDK Tools/Android SDK Tools (24.3.3) T......

zting科技
2017/11/10
0
0
windows下安装android版reactnative

一.安装JDK 1.在Java官方下载; 2.安装完配置windows环境变量; 添加 JAVAHOME 内容为 E:SoftdevelopeJavajdk1.8.072 添加 CLASSPATH 内容为 .;%JAVAHOME%lib;%JAVAHOME%libtools.jar; 在Pat...

binux
2016/06/20
103
0

没有更多内容

加载失败,请刷新页面

加载更多

如何为MVC-3转换为4应用程序添加对System.Web.Optimization的引用

我正在最近从MVC 3转换为MVC 4 beta的项目中尝试使用新的捆绑功能。 它需要global.asax中的一行代码, BundleTable.Bundles.RegisterTemplateBundles(); ,这需要using System.Web.Optimiza...

技术盛宴
今天
79
0
Kettle自定义jar包供javascript使用

我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法。所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用。 本篇文章有参考自:https://www...

CREATE_17
昨天
114
0
处理CSV文件中的逗号

我正在寻找有关如何处理正在创建的csv文件的建议,然后由我们的客户上传,并且该值可能带有逗号(例如公司名称)。 我们正在研究的一些想法是:带引号的标识符(值“,”值“,”等)或使用|...

javail
昨天
79
0
计算一个数的数位之和

计算一个数的数位之和 例如:128 :1+2+8 = 11 public int numSum(int num) { int sum = 0; do { sum += num % 10; } while ((num = num / 10) > 0); return sum;......

SongAlone
昨天
128
0
为什么图片反复压缩后普遍会变绿,而不是其他颜色?

作者:Lion Yang 链接:https://www.zhihu.com/question/29355920/answer/119088684 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 业余版概要:安卓的...

shzwork
昨天
85
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部