Hi,
I use cocos2dx-js. I add new Custom class in tojs and conf ini to it. When I run ./genbindings.py generation fails.
Here is log:
.... Generating bindings for target spidermonkey
.... .... Processing section cocos2dx_custom
dyld: warning, LC_RPATH @executable_path/../lib in /Users/vosit/Desktop/pirra_ready/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/libclang/libclang.dylib being ignored in restricted program because of @executable_path
Traceback (most recent call last):
File "/Users/vosit/Desktop/pirra_ready/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1550, in <module>
main()
File "/Users/vosit/Desktop/pirra_ready/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1546, in main
generator.generate_code()
File "/Users/vosit/Desktop/pirra_ready/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1203, in generate_code
self._parse_headers()
File "/Users/vosit/Desktop/pirra_ready/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1237, in _parse_headers
tu = self.index.parse(header, self.clang_args)
File "/Users/vosit/Desktop/pirra_ready/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py", line 2113, in parse
self)
File "/Users/vosit/Desktop/pirra_ready/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py", line 2225, in from_source
raise TranslationUnitLoadError("Error parsing translation unit.")
TranslationUnitLoadError: Error parsing translation unit.
cocos2dx_custom.ini:
[cocos2dx_custom]
prefix = cocos2dx_custom
target_namespace = cc
android_headers = -I%(androidndkdir)s/platforms/android-14/arch-arm/usr/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 -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.9/include
android_flags = -D_SIZE_T_DEFINED_
clang_headers =
clang_flags = -nostdinc -x c++ -std=c++11 -U __SSE__
cocos_headers = -I%(cocosdir)s/cocos -I%(cocosdir)s/cocos/platform/android -I%(cocosdir)s/external/sources
cocos_flags = -DANDROID
cxxgenerator_headers =
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
headers = %(cocosdir)s/tools/tojs/custom_class/CustomClass.hpp
classes = CustomClass.*
remove_prefix =
skip =
rename_functions =
rename_classes =
classes_have_no_parents =
base_classes_to_skip = Ref Clonable
abstract_classes =
script_control_cpp = no
cmd_args of genbindings.py file:
cmd_args = {'cocos2dx_custom.ini' : ('cocos2dx_custom', 'jsb_cocos2dx_custom_auto'), \
'cocos2dx.ini' : ('cocos2d-x', 'jsb_cocos2dx_auto'), \
'cocos2dx_audioengine.ini' : ('cocos2dx_audioengine', 'jsb_cocos2dx_audioengine_auto'), \
'cocos2dx_network.ini' : ('cocos2dx_network', 'jsb_cocos2dx_network_auto'), \
'cocos2dx_extension.ini' : ('cocos2dx_extension', 'jsb_cocos2dx_extension_auto'), \
'cocos2dx_builder.ini' : ('cocos2dx_builder', 'jsb_cocos2dx_builder_auto'), \
'cocos2dx_ui.ini' : ('cocos2dx_ui', 'jsb_cocos2dx_ui_auto'), \
'cocos2dx_studio.ini' : ('cocos2dx_studio', 'jsb_cocos2dx_studio_auto'), \
'cocos2dx_spine.ini' : ('cocos2dx_spine', 'jsb_cocos2dx_spine_auto'), \
'cocos2dx_dragonbones.ini' : ('cocos2dx_dragonbones', 'jsb_cocos2dx_dragonbones_auto'), \
'cocos2dx_experimental_webView.ini' : ('cocos2dx_experimental_webView', 'jsb_cocos2dx_experimental_webView_auto'), \
'cocos2dx_experimental_video.ini' : ('cocos2dx_experimental_video', 'jsb_cocos2dx_experimental_video_auto'), \
'creator.ini': ('creator', 'jsb_creator_auto'),
}
CustomClass.cpp:
// CustomClass.cpp
#include "CustomClass.h"
USING_NS_CC;
CustomClass::CustomClass(){
}
CustomClass::~CustomClass(){
}
bool CustomClass::init(){
return true;
}
std::string CustomClass::helloMsg() {
return "Hello from CustomClass::sayHello";
}
CustomClass.hpp:
// CustomClass.h
#ifndef __CUSTOM__CLASS
#define __CUSTOM__CLASS
#include "cocos2d.h"
namespace cocos2d {
class CustomClass : public cocos2d::Ref
{
public:
CustomClass();
~CustomClass();
bool init();
std::string helloMsg();
CREATE_FUNC(CustomClass);
};
} //namespace cocos2d
#endif // __CUSTOM__CLASS
content of tojs folder:
… tools/tojs
- cocos2dx_audioengine.ini
- cocos2dx_builder.ini
- cocos2dx_custom.ini
- cocos2dx_dragonbones.ini
- cocos2dx_experimental_video.ini
- cocos2dx_experimental_webView.ini
- cocos2dx_extension.ini
- cocos2dx_network.ini
- cocos2dx_spine.ini
- cocos2dx_studio.ini
- cocos2dx_ui.ini
- cocos2dx.ini
- creator.ini
- custom_class(folder) – CustomClass.cpp – CustomClass.hpp
- genbindings.ini
- userconf.ini