VN.Py——API封装的编译

有关基于CTP API封装的编译是一项关键的技术,其起到由CTP API封装到gateway的承上启下的作用,在这块小编也是踏坑无数,遇到诸如VS下链接器工具错误等等问题,差点要放弃,幸运的是在颠簸的搭车路上想到了症结所在,本质上也许是boost库没有编译成功,其或与python版本、VC++工具有关,还好最终还是解决了,寥寥一篇文章写不了太多心得,就当是做个记录,这个关卡的突破很值得纪念。

配置环境

小编下载的boost C++ library是Version 1.68.0;

因为VN.Py中对CTP API的封装用到了boost.python,为此,必须编译其中的boost.python库,其需要python支持,考虑方便,小编下载的是Anaconda2-5.3.1-Windows-x86.exe(Win 32位版本,带Python2.7)。

Visual Studio2013带VC++ 12.0,给其配置命令行环境,在菜单栏中的TOOLS列中,点选ExTernal Tools,给其配置Command Prompt,其作用见官方解释:The Visual Studio Developer Command Prompt automatically sets the environment variables that enable you to easily use .NET Framework tools. The Developer Command Prompt is installed with VisualStudio.详细配置过程参考官方文档:

https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs

安装并编译Boost库

在visual studio command prompt下转到boost安装目录,执行以下命令以编译boost库,耗时在半个钟左右。

封装API的编译

给工程配置属性,依次是三个地方:Include Directories、Reference Directories、Linker-Additional LibraryDirectories;并拒绝使用预编译头,小编的配置如下:

之后建立win32项目,应用类型为dll,编译时选择Release版本,成功后改后缀为.pyd,即可为Python2调用,没错成功了。

也许还有很多细节没有提到,但是这个编译流程大致如此,能编译成功还是很开心的,最后贴一张编译成功的OutPut:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181212G1ILAG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券