cocos2dx3.2 lua版本中绑定自定义c++类出现的问题

现在我想做一个闪电的特效,用了论坛中捕鱼达人3 的源码,里面有noise.h,VertexVector.h,LightLineRender.h这三个头文件。
LightLineRender引用VertexVector.h,VertexVector.h引用noise.h

在论坛上找自定义的教程,按照这篇写的开始整http://www.cocoachina.com/bbs/read.php?tid=196416&page=1。
但这篇里面class只有一个,我的这个不一样。我试过只写那个LightLineRender类,不管那两个,报这种错

  1. <severity = Warning,
    location = <SourceLocation file ‘/Users/hc/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 86, column 9>,
    details = “‘FLT_DIG’ macro redefined”>
  2. <severity = Warning,
    location = <SourceLocation file ‘/Users/hc/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 87, column 9>,
    details = “‘DBL_DIG’ macro redefined”>
    。。。。。。

后来我看了下自带的cocos2dx_spine.ini怎么写的,他也是多个类相互引用 ,单独写了一个头文件 来存放这些涉及到的头文件 。
我按他的也写了一个头文件Light.h
#ifndef LIGHT_LIGHT_H_
#define LIGHT_LIGHT_H_

#include “cocos2d.h”
#include “3d/CCMesh.h”
#include “Noise.h”

#include “VertexVector.h”
#include “LightLineRender.h”

#endif /* LIGHT_LIGHT_H_ */
然后修改Light.ini

the prefix to be added to the generated functions. You might or might not use this in your own

templates

prefix = Light

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 =

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/cocos/editor-support -I%(cocosdir)s/cocos/platform/android

cocos_flags = -DANDROID

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/projects/CppDemo2/Classes/Light.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 = Noise VertexVector LightLineRender

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 = Noise VertexVector LightLineRender

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

Light.py修改了这两句
output_dir = ’s/cocos/projects/CppDemo2/Classes/auto' project_root

    cmd_args = {'Light.ini' : ('Light', 'lua_Light_auto')}

然后在命令行下执行Light.py
还是报这个错啊
Errors in parsing headers:

  1. <severity = Warning,
    location = <SourceLocation file ‘/Users/xx/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 86, column 9>,
    details = “‘FLT_DIG’ macro redefined”>
  2. <severity = Warning,
    location = <SourceLocation file ‘/Users/xx/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 87, column 9>,
    details = “‘DBL_DIG’ macro redefined”>
  3. <severity = Warning,
    location = <SourceLocation file ‘/Users/xx/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 106, column 9>,
    details = “‘FLT_MAX’ macro redefined”>
  4. <severity = Warning,
    location = <SourceLocation file ‘/Users/xx/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 107, column 9>,
    details = “‘DBL_MAX’ macro redefined”>
  5. <severity = Warning,
    location = <SourceLocation file ‘/Users/xx/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 114, column 9>,
    details = “‘FLT_MIN’ macro redefined”>
  6. <severity = Warning,
    location = <SourceLocation file ‘/Users/xx/DevelopTools/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64/lib/clang/3.3/include/float.h’, line 115, column 9>,
    details = “‘DBL_MIN’ macro redefined”>
    ====

Generating lua bindings succeeds.

真心不知道错到哪了,请大牛指点一下,非常感谢

Generating lua bindings succeeds 这不是成功了咩- -

但是没有生成auto文件夹,以及转化后的文件啊

楼主你的问题解决了么?

楼主,你的问题解决了么,我现在是要绑定的类里面引用了另外一个自定义C++类,就绑定失败,如果不引用,就没问题,你的问题怎么解决的啊

你解决了你问的这个问题了吗 自定义c++类引用了另外一个自定义c++类