报错如下,请大神帮忙看看。
generating userconf.ini…
Generating bindings for towest…
Using userconfig
(‘androidndkdir’, ‘/Users/ksinger/Documents/android-ndk-r9b’), (‘clangllvmdir’, ‘/Users/ksinger/Documents/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64’), (‘cocosdir’, ‘/Users/ksinger/Documents/code/towest/LuaToWest’), (‘cxxgeneratordir’, ‘/Users/ksinger/Documents/code/towest/LuaToWest/tools/bindings-generator’), (‘extra_flags’, ‘’)]
… Generating bindings for target lua
… … Processing section towest
/Library/Python/2.7/site-packages/Cheetah/Compiler.py:1509: UserWarning:
You don’t have the C version of NameMapper installed! I’m disabling Cheetah’s useStackFrames option as it is painfully slow with the Python version of NameMapper. You should get a copy of Cheetah with the compiled C version of NameMapper.
"\nYou don’t have the C version of NameMapper installed! "
Traceback (most recent call last):
File “/Users/ksinger/Documents/code/towest/LuaToWest/tools/bindings-generator/generator.py”, line 1294, in
main()
File “/Users/ksinger/Documents/code/towest/LuaToWest/tools/bindings-generator/generator.py”, line 1290, in main
generator.generate_code()
File “/Users/ksinger/Documents/code/towest/LuaToWest/tools/bindings-generator/generator.py”, line 980, in generate_code
self._parse_headers()
File “/Users/ksinger/Documents/code/towest/LuaToWest/tools/bindings-generator/generator.py”, line 1007, in _parse_headers
tu = self.index.parse(header, self.clang_args)
File “/Users/ksinger/Documents/code/towest/LuaToWest/tools/bindings-generator/clang/cindex.py”, line 2109, in parse
self)
File “/Users/ksinger/Documents/code/towest/LuaToWest/tools/bindings-generator/clang/cindex.py”, line 2221, in from_source
raise TranslationUnitLoadError(“Error parsing translation unit.”)
TranslationUnitLoadError: Error parsing translation unit.
Generating lua bindings fails.
附录ini文件:
bash-3.2$ more towest.ini
the prefix to be added to the generated functions. You might or might not use this in your own
templates
prefix = towest
create a target namespace (in javascript, this would create some code like the equiv. to ns = ns || {})
all classes will be embedded in that namespace
cpp_namespace = team::lua
target_namespace = tl
android_headers = -I%(androidndkdir)s/platforms/android-14/arch-arm/usr/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/include
android_flags = -D_SIZE_T_DEFINED_
clang_headers = -I%(clangllvmdir)s/lib/clang/3.3/include
clang_flags = -nostdinc -x c++ -std=c++11
cocos_headers = -I%(cocosdir)s/cocos -I%(cocosdir)s/cocos/2d -I%(cocosdir)s/cocos/base -I%(cocosdir)s/cocos/ui -I%(cocosdir)s/cocos/physics -I%(cocosdir)s/cocos/2d/platform -I%(cocosdir)s/cocos/2d/platform/android -I%(cocosdir)s/cocos/math/kazmath -I%(cocosdir)s/extensions -I%(cocosdir)s/external -I%(cocosdir)s/cocos/editor-support -I%(cocosdir)s -I%(cocosdir)s/cocos/scripting/lua-bindings/manual
cocos_flags = -DANDROID -DCOCOS2D_JAVASCRIPT -U__MINGW32__
cxxgenerator_headers =
extra arguments for clang
extra_arguments = (android_headers)s (clang_headers)s (cxxgenerator_headers)s (cocos_headers)s (android_flags)s (clang_flags)s (cocos_flags)s (extra_flags)s
what headers to parse
headers = -I%(cocosdir)s/Classes/core/RuntimeCoreLua.h
what classes to produce code for. You can use regular expressions here. When testing the regular
expression, it will be enclosed in “^", like this: "^Menu*”.
classes = HttpFile HttpString FileUtil SystemUtil
what should we skip? in the format ClassName::
ClassName is a regular expression, but will be used like this: “^ClassName$” functions are also
regular expressions, they will not be surrounded by “^$”. If you want to skip a whole class, just
add a single “" as functions. See bellow for several examples. A special class name is "”, which
will apply to all class names. This is a convenience wildcard to be able to skip similar named
functions from all classes.
skip =
rename_functions =
rename_classes =
for all class names, should we remove something when registering in the target VM?
remove_prefix =
classes for which there will be no “parent” lookup
classes_have_no_parents =
base classes which will be skipped when their sub-classes found them.
base_classes_to_skip =
classes that create no constructor
Set is special and we will use a hand-written constructor
abstract_classes =
Determining whether to use script object(js object) to control the lifecycle of native(cpp) object or the other way around. Supported values are ‘yes’ or ‘no’.
script_control_cpp = no