nodejs使用C/C++三方库修改步骤

运行环境:Ubuntu 13.10

目       的:在nodejs中调用mongodb C 接口实现将一个集合中的数据做转换后储存

                  为另一集合。

-------------------------------------------------------------------------------------------------------------

一个可以调用C/C++编写的nodejs工程的最基本几个文件如下:

pro_name.js

binding.gyp(这个文件的名字是指定的,不能更改)

mypro.cc(通过这个C++文件来调用自己编写的C和C++程序)

-------------------------------------------------------------------------------------------------------------

具体步骤如下:

1、将自己写好con.c和con.h文件放入上述三个文件所在的文件夹内,然后在binding.gyp

     中sources处添加con.c。

     ‘source’:['mypro.cc','con.c']

2、在终端输入node-gyp configure 配置此工程(终端所在的位置应为上述三个文件所

     在的目录)

3、因为要使用到mongodb和json的API,所以编译时要加上一些编译选项。进入第二

     步产生的build文件夹修改第一个文件Makefile:

      因为添加的是C文件所以在cmd_cc处加这里主要是头文件所在位置,如果是C++

      文件则在cmd_cxx处添加。

      quiet_cmd_cc = CC($(TOOLSET)) $@
      cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< -        

      I/usr/local/include/json `pkg-config --cflags --libs libmongoc-1.0`
      同时也可以在ro.target.mk文件的INC_Release 后面添加:

      INC_Release := \

-I/usr/local/include/json

      quiet_cmd_cxx = CXX($(TOOLSET)) $@
      cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $<

      在mypro.target.mk文件添加库文件所在路径或是相关选项:

      $(obj).target/mypro.node: LIBS := $(LIBS) -std=c99 -ljson `pkg-config --cflags --libs libmongoc-1.0`

      这一步才是nodejs能够使用C/C++编写接口的主要修改,其他步骤在nodejs官网都能找

      到。

      而这里也只是用到第三方库时才做修改,如果不需要用到而是用的标准C库则无需修改。

4、正常调用

你可能感兴趣的:(问题解决,学习笔记)