node-ctp的编译和安装

node-ctp是一项开创性的工作,解决了CTP接口与node.js结合的问题,源代码在此:https://github.com/zoohanyoo/node-ctp。

感谢zoohanyoo为此所做的努力,相信这其中有很多个不眠之夜,因为libuv和v8都足够复杂。node-ctp最突出的贡献是给出了node.js主线程与动态链接库so线程之间交互的一种可行的解决方案,目前尚不知道是否有其他更优的方案。

node-ctp不完美的地方是该工具开发于两年前,具备雏形之后没有继续维护,没能跟上node.js快速前进的步伐。这样的后果是当我尝试用最新的node.js编译node-ctp的时候,会得到一系列令人精神崩溃的报错,比如这样:

../src/wrap_trader.h:24:44: error: expected class-name before ‘{‘ token
class WrapTrader : public node::ObjectWrap {
^

还有这样:
../src/wrap_trader.h:30:37: error: ‘Arguments‘ does not name a type
static Handle<Value> Connect(const Arguments& args);

在尝试修改源代码未果后,我决定还原node-ctp当年的开发环境,以此来避免编译时遇到的错误。现在看来,这无疑是十分明智的。

node-ctp依赖的node.js的版本是0.10.26,npm版本是1.4.29,node-gyp版本是1.0.2,都是2014年的古董。幸运的是,这些古董在网上都能够下载到,说明node.js的生态环境是非常健康的,维护者已经知晓用户存在这样的需求。这是一个非常好的信号。node-ctp依赖的centos版本是6.x。

0、准备centos 6.4系统。这个系统需要能够连接到互联网,这是基本要求。

1、node.js的安装过程:

下载node.js的0.10.26版本(感谢淘宝)

./configure

make

make install 需要root权限

make test

2、npm的安装过程:

下载npm的1.4.29版本(感谢Jack Ma老板)

./configure

make

make install 需要root权限

3、node-gyp的安装过程:

首先注册一个淘宝的npm镜像,这样能够加快安装速度

npm config set registry https://registry.npm.taobao.org

npm install -g [email protected] 需要root权限,-g的意思是将node-gyp设为全局命令,可以像node一样直接运行

4、node-ctp的build过程:

首先编辑binding.gyp文件,注意node-ctp中缺失.so文件,建议重新下载ctp api包,并将其路径设置在binding.gyp文件中

node-gyp rebuild --nodedir ~/path/to/node-v0.10.26 此处设置了node.js源代码路径,编译的时候需要node的头文件

5、安装完毕后可以进行基本的测试

为此可在www.simnow.com.cn上申请一个ctp测试账号,并设置密码,这个密码就是ctp的登陆密码。下载一个快期桌面终端,测试账号和密码的有效性。下单时会提示:“下单失败: CTP:该交易席位未连接到交易所”,尚不知原因。

修改trade_confirm.js,填入交易系统tcp地址(simnow提供)、账号、密码、会员号(9999),然后运行:

node trade_confirm.js

观察输出结果。

至此,node-ctp的编译工作完成。

上述工作耗时一天,总体感觉还算顺利,尤其是node的几个老版本工具都非常容易找到,配置过程也很简便,遇到问题在网上能搜到解决方法,这说明node.js的整个生态环境是完备的,用户也很多。目前的认识是,node-ctp完成了最核心的功能,即ctp线程与node线程的通信,其他方面我还需要花时间进一步梳理。

EOF

时间: 2024-10-14 07:06:36

node-ctp的编译和安装的相关文章

GCC的编译和安装 很好的资料

http://blog.csdn.net/yrj/article/details/492404 1.GCC的编译和安装2.预处理    #define 可以支持不定数量的参数.    例子如下:    #define err(...) fprintf(stderr,__VA_ARGS__)    err("%s,%d/r/n","The error code:",48);    扩展为:    fprintf(stderr,"%s,%d/r/n"

cypthon的visual studio编译环境安装

按照教程,如果出现vcvarsall.bat找不到的情况,则需要安装正确版本的visual studio http://docs.cython.org/src/tutorial/cython_tutorial.html python 2.7.x使用的是vs2008,如果没有安装,可以安装vs2008 express版本.下图是查看vs所使用的vs编译器的版本的方法. 可以通过检查环境变量中VS90COMNTOOLS是否存在来确定vs2008 express是否安装好. 下面是配置过程: 先安装v

centos7下源码编译方式安装httpd

语法: chkconfig --list [name] chkconfig --add name chkconfig --del name chkconfig [--level levels] name <on|off|reset> chkconfig [--level levels] name 参考文章http://www.cnblogs.com/jipeng87/p/6308725.html 前言 Apache至少需要apr.apr-util.pcre组件的支持. APR(Apache p

Node.js系列基础学习----安装,实现Hello World, REPL

Node.js基础学习 1:简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好 2:安装 à安装node.js 在官网安装自己win版本的node.js的版本,下载,安装完毕后在运行中输入node -v若是出现版本号就证明安装成功. à安装n

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

1. 背景介绍 GoldenDict 是一款非常优秀的跨平台电子词典软件,支持 StarDict.Babylon 等多种词典.其 PC 版基于 Qt 编写,完全免费.开源且没有广告.GoldenDict 的 Android 版是另外一个全新实现的系统,采用了付费版去广告.免费版显示广告的策略,这里就不详细讨论了. GoldenDict 在 GitHub 上的地址是 https://github.com/goldendict/goldendict,截至目前(2015-10-17)已经有 1872

基于Appium1.6.X的WebDriverAgent编译、安装

转自:http://www.cnblogs.com/baconLiu/p/6861431.html tips:WebDriverAgent是Appium1.6.3以后版本新添加的模块,为了让appium与iPhone(基于xcuitest)设备进行通信而添加的.但是,这个模块在是一个独立的项目,在使用前必须编译.安装.下面介绍Appium中的WebDriverAgent的编译和打包. appium-xcuitest-driver依赖(两种编译,安装方式) 方法一:基于Apple ID,编译,安装

eclipse反编译插件安装

前言:在实际的开发中几乎都会使用到一些框架来辅助项目的开发工作,对于一些框架的代码我们总怀有一些好奇之心,想一探究竟,有源码当然更好了,对于有些JAR包中的代码我们就需要利用反编译工具来看一下了,下面是我常使用的一种安装JAVA反编译工具的方法,操作比较简单,不过时间长了也容易忘记,还是在此小记一笔吧!毕竟好记性不如烂笔头(插件市场中有好多好玩的,自己可以尝试玩玩看!) 1:Eclipse的版本信息 2:Help--Eclipse Marketplace 3-1:输入 Decompiler 搜索

在centos6.6中mysql5.5的编译、安装、配置

今天根据需求要在centos6.6上编译安装mysql5.5,因为以前编译安装过感觉很简单,但是今天还是出现了点小问题,所以把过安装过程总结了一下: 好像从mysql5.5开始编译安装mysql需要用到cmake工具进行编译安装,既然是编译安装,那么肯定要用到一些依赖的类库以及相关的编译工具,所以需要事先安装相关工具. 一 .编译安装 1.安装mysql编译过程中所需要的依赖关系以及编译工具(需要先配置好yum源) # yum -y install gcc gcc-c++ autoconf li

【node.js】本地模式安装express:&#39;express&#39; 不是内部或外部命令,也不是可运行的程序或批处理文件。

今天闲来无事想起了node.js,因此到网上下载了一个node.js的安装程序进行安装.其中: 安装程序:node-v0.11.13-x64.msi PC系统:Windows 7 自定义安装路径:D:\TOOLS\NodeJs 安装完成后,执行: D:\TOOLS\NodeJs>node -v v0.11.13 安装框架express,从网站上下载了一个安装文档,说安装express可分全局模式和本地模式,个人觉得全局模式就是默认的没什么意思,就选择本地模式进行安装,执行: D:\TOOLS\N

在Linux CentOS上编译并安装Clang 3.5.0

编译CoreCLR需要Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum repos中最新版也是这个),只能自己手工编译LLVM的源代码进行安装. (注:CentOS的版本是6.6) 一.安装libstdc++4.7 wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo yum install devtoolset-2-gcc dev