参照的链接:http://www.cocos2d-x.org/wiki/Binding_Custom_Class_To_Js_Runtime
在终端jsb绑定的时候没成功,我把错误贴一下,感觉可能是ini文件配置出错,找个大神帮我解决一下
PYTHON_BIN not defined, use current python.
generating userconf.ini…
Generating bindings for cocos2dx_experimental_webView…
Using userconfig
[(‘androidndkdir’, ‘/Users/dodur/Documents/NDK_ROOT’), (‘clangllvmdir’, ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64’), (‘creatordir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/cocos/editor-support/creator’), (‘cocosdir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x’), (‘jsbdir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings’), (‘cxxgeneratordir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator’), (‘extra_flags’, ‘’), (‘clang_include’, ‘lib/clang/3.6/include’)]
… Generating bindings for target spidermonkey
… … Processing section cocos2dx_experimental_webView
====
Errors in parsing headers:
- <severity = Warning,
location = <SourceLocation file ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64/lib/clang/3.6/include/float.h’, line 86, column 9>,
details = “‘FLT_DIG’ macro redefined”> - <severity = Warning,
location = <SourceLocation file ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64/lib/clang/3.6/include/float.h’, line 87, column 9>,
details = “‘DBL_DIG’ macro redefined”> - <severity = Warning,
location = <SourceLocation file ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64/lib/clang/3.6/include/float.h’, line 106, column 9>,
details = “‘FLT_MAX’ macro redefined”> - <severity = Warning,
location = <SourceLocation file ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64/lib/clang/3.6/include/float.h’, line 107, column 9>,
details = “‘DBL_MAX’ macro redefined”> - <severity = Warning,
location = <SourceLocation file ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64/lib/clang/3.6/include/float.h’, line 114, column 9>,
details = “‘FLT_MIN’ macro redefined”> - <severity = Warning,
location = <SourceLocation file ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64/lib/clang/3.6/include/float.h’, line 115, column 9>,
details = “‘DBL_MIN’ macro redefined”>
====
。
。
。
Generating bindings for cocos2dx_custom…
Using userconfig
[(‘androidndkdir’, ‘/Users/dodur/Documents/NDK_ROOT’), (‘clangllvmdir’, ‘/Users/dodur/Documents/NDK_ROOT/toolchains/llvm-3.6/prebuilt/darwin-x86_64’), (‘creatordir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/cocos/editor-support/creator’), (‘cocosdir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x’), (‘jsbdir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings’), (‘cxxgeneratordir’, ‘/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator’), (‘extra_flags’, ‘’), (‘clang_include’, ‘lib/clang/3.6/include’)]
Traceback (most recent call last):
File “/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py”, line 1544, in
main()
File “/Users/dodur/Desktop/testJSForCPP/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py”, line 1470, in main
raise Exception(“No sections defined in config file”)
Exception: No sections defined in config file
Generating javascript bindings fails.
另附加ini文件:
[cocos2dx_custom]
the prefix to be added to the generated functions. You might or might not use this in your own
templates
prefix = cocos2dx_custom
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
target_namespace = cc
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 -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/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/my -I%(cocosdir)s/cocos/base -I%(cocosdir)s/cocos/platform/android
cocos_flags = -DANDROID -DCOCOS2D_JAVASCRIPT
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 = %(cocosdir)s/cocos/my/CustomClass.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 = CustomClass.*
what should we skip? in the format ClassName::[function function]
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 = Ref Clonable
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
有人帮忙解决一下吗,感觉ini文件出错,但不知道怎么配置