执行genbindings.py报错(3.11之前的版本都报错)!!!

如题,我使用的引擎版本是cocos2dx3.4,打算做lua导出,执行python genbindings.py报错:

C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\tolua>python C:\Develop\cocos\coc
os2d-x\cocos2d-x-3.4\tools\tolua\genbindings.py
generating userconf.ini…
Generating bindings for cocos2dx…
Using userconfig
[(‘androidndkdir’, ‘C:\Develop\Android\android-ndk-r9b’), (‘clangllvmdir’,
‘C:\Develop\Android\android-ndk-r9b\toolchains\llvm-3.3\prebuilt\windows-
x86_64’), (‘cocosdir’, ‘C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4’), (‘cxxgen
eratordir’, ‘C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-gener
ator’), (‘extra_flags’, ‘-D__WCHAR_MAX__=0x7fffffff -U__MINGW32__’)]

… Generating bindings for target lua

… … Processing section cocos2d-x

Traceback (most recent call last):
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator/genera
tor.py”, line 1418, in
main()
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator/genera
tor.py”, line 1413, in main
generator = Generator(gen_opts)
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator/genera
tor.py”, line 905, in init
self.index = cindex.Index.create()
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator\clang
cindex.py”, line 2090, in create
return Index(conf.lib.clang_createIndex(excludeDecls, 0))
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator\clang
cindex.py”, line 141, in get
value = self.wrapped(instance)
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator\clang
cindex.py”, line 3370, in lib
register_functions(lib, not Config.compatibility_check)
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator\clang
cindex.py”, line 3317, in register_functions
map(register, functionList)
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator\clang
cindex.py”, line 3315, in register
return register_function(lib, item, ignore_errors)
File “C:\Develop\cocos\cocos2d-x\cocos2d-x-3.4\tools\bindings-generator\clang
cindex.py”, line 3296, in register_function
raise LibclangError(msg)
####LibclangError:function ‘clang_annotateTokens’ not found. Please ensure that your python bindings are compatible with your libclang.so version.

Generating lua bindings fails.

所有工具都是按tolua目录下的readme.md文件下载的,除了Cheetah(文档里提供的这个链接已经失效)
https://raw.github.com/dumganhar/myoldcocos2d-x_backup/download/downloads/Cheetah.zip
所以我使用的Cheetah是从网上下载的,因为cocos2dx3.4环境下报错,没办法只好测试每一个引擎版本,从3.2测试到3.11,发现3.11引擎能正常执行genbindings.py脚本并生成对应文件。

但是这里有个问题,3.11版本生成的xxx_auto.cpp文件里如果参数是对象的话,则luaval_to_object()函数是5个参数,例如Node:setParent(Node* node)方法生成的对应auto代码里luaval_to_object()函数是5个参数:

ok &= luaval_to_object<cocos2d::Node>(tolua_S, 2, "cc.Node",&arg0, "cc.Node:setParent");

但是同样的代码在低版本里生成的代码luaval_to_object()函数是4个参数,如下:

ok &= luaval_to_object<cocos2d::Node>(tolua_S, 2, "cc.Node",&arg0);

所以我用cocos2dx3.11的tolua工具生成的文件,在低版本cocos2dx3.4里用不了,但是cocos2dx3.4自身的tolua工具有报错,cocos2dx3.11版本以前的tolua工具我都测试过了, 在我的环境下都是报错的

所以想问下,是不是因为我下载的Cheetah工具不对的原因导致的?但是该Cheetah在3.11环境下又ok,如果是的话,那我应该到哪里去下载Cheetah正确版本?如果不是的话,我应该怎样解决这个问题?谢谢大家了~~

这里有具体的环境要求和配置:https://github.com/cocos2d/bindings-generator

多谢解答,已经可以使用了,但是生成的代码luaval_to_object()方法是5个参数,编译报错,将最后一个参数删除后能用了,不知道以后会不会出问题。