4c16a6fd5f
python的template容易让linter报错,设置来设置去太麻烦,就改名吧. |
||
---|---|---|
.. | ||
3rd_party | ||
adaptor | ||
autocxxpy | ||
doc | ||
templates | ||
tests/tests | ||
.gitignore | ||
env.props | ||
generate_ctp.py | ||
README.MD | ||
tests.sln | ||
TODO.txt |
autocxxpy
项目主旨
这个项目意在分析C++头文件,并且生成一个对应的pyd文件,以便python调用。 作为vnpy的一个代码生成工具,目前主要用来生成vnpy.binding的代码,以便vnpy调用C++的东西。
特点
- 可以从头文件以及相应的依赖库直接生pyd文件对应的代码。
- 可以在C++层自定义任何函数的转化细节
- 精准的分析:基于clang进行语法分析,不会因为代码格式而出现分析失误。
可以做到哪些东西
目前可以正确分析C++的以下元素: 全局域: define enum class/struct functions typedef class: data member(variable) method(functions) destructor
分析正确率
基于CLang编译器,分析的正确率取决于clang。
转化细节
如何使用
在使用之前,先下载clang。如果需要其他版本的CLang,请看这里。
安装好clang之后将所需的库复制至/vnpy/binding/generator/目录下。
在Windows下所需的库是libclang.dll。Linux下则为libclang.so。
如果想为类ctp接口生成代码,请看ctp.md
如果想为新接口生成代码,请看converts.md
以后会增加哪些支持
增加什么的分析主要看以后遇到哪些接口。 若目前的生成器能无法分析所遇到接口的所有元素,那么肯定会增加新功能。