如何在VS2015中搭建可以写node.js的C++ Addon的环境

如何在VS2015中搭建可以写node.js的C++Addon的环境


      由于项目需要,编写一些提供给node.js调用的C++实现的插件,所以在vs中搭建开发node addon 的环境。因为视频全是英文,当中有些细节提,所以写个文档分享下心得

 

一. 准备工作:

1.  安装好vs2015,这没什么说的,安装就好,最后打开时选 VC++(vs2015默认是C#)

2.  https://github.com/nodejs/node去github 下载node.js的源码(默认编译出来的是64位)

3.  https://www.python.org/downloads/去python官网下载python(v2.7)

4.  https://nodejs.org/en/download/去nodejs下载32或者64位的exe

 

二.正式安装配置环境

1.  安装好python,记得在环境变量中,找到Path后面加上Python的路径

2.  vcbuild Release x64 指令在cmd执行,编译生成64位的node.exe 和64位的node.lib库

3.  https://nodejs.org/download/release/v7.8.0/win-x86/ 下载node.lib 32位

4.  https://nodejs.org/download/release/v7.8.0/  下载v8和uv和node.h等需要的头文件 

注意:这里nodejs.exe和lib,include头文件都是用得v7.8,x86的

5.  创建空的工程,并进行如下配置。

 

这里要说明一下,如果你的项目需要32位的lib,那你Debug x64时候会出问题,所以一定要做到 node.exe,node.lib,以及项目目标类型和项目所需要的都一致,都是x86或者x64.

注意:如果用得下载的源码,再vcbuild Release x64 编译生成的是x64的exe,同时生成的node.lib也是64位,所以创建工程,生成的目标也得是x64。 而我的项目,需要agora的一个lib库,它是32位的,所以我重新官网下载安装32位的v7.8的exe(步骤1.4),再步骤2.1,2.3,2.4。

 

 

三.创建工程并配置参数运行示例工程

创建一个空的工程,并进行如下步骤设置:

 




这里是设置头文件路径,编译的就是…\node-master\src,下载的是…\include\node(node.h,v8.h.uv.h这些头文件的路径)


 


这就是 …\node-master\Release 或者下载的node.lib放置的路径

 

 



编译可能出现的问题及解决:

 

编译时提示“fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾”

分析:
此错误发生的原因是VC编译器在寻找预编译头文件(默认#include“stdafx.h”)时,文件未预期结束。也就是没有找到默认的预编译头文件”stdafx.h”。而VC中创建每一个cpp默认都会加上”stdafx.h”,但添加的第三方类库(比如tinyxml)的cpp文件并没有 #include “stdafx.h”预编译指示头,所以编译器就无法找到预编译指示头文件。

解决:

方法有好几种,最直接的办法就是打开项目属性对话框 “配置属性-> c/c++-> 预编译头->“创建/使用预编译头”的值改为 “使用预编译头(/Yu)” 改为 “不适用预编译头“,虽然这么做可以一劳永逸,后面添加的第三方库文件都不会再遇到这个问题,但是会带来整个编译变得很慢,所以不推荐这么做。

比较好的方式是右键打开第三库中的cpp文件的属性对话框,修改”配置属性-> c/c++ -> 预编译头->“创建/使用预编译头” 的值改为 “使用预编译头(/Yu)” 改为 “不适用预编译头“

重新编译项目就可以了。



fatal error LNK1112: module machine type'x64' conflicts with target machine type 'X86'




还有其他错误:如误删除了#pragma once 出现头文件二次编译的错误,还有其他的,比如没包含需要的.lib或者dll文件等错误。

 

四. 按照以上设置项目,并加上官方demo,工程可以正常编译成功。

 

如上配置,可以在cmd中启动node.exe并且启动js脚本。




脚本的代码类似于:var addon =require("D:/project/Project1/Debug/Project1.node"),这里写上官方给的demo就可以。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值