cocos2dx3.2 lua 独立自定义socket类绑定问题
2016-03-30 15:47
375 查看
故障报错如下:
txxxxmac:tolua txxxx$ ./genbindings_mysocket.py
PYTHON_BIN not defined, use current python.
generating userconf.ini...
Generating bindings for mysocket...
Using userconfig
[('androidndkdir', '/Android-op/android-ndk-r9b'), ('clangllvmdir', '/Android-op/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64'),
('cocosdir', '/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x'), ('cxxgeneratordir', '/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator'), ('extra_flags', '')]
.... Generating bindings for target lua
.... .... Processing section mysocket
====
Errors in parsing headers:
1. <severity = Warning,
location = <SourceLocation file '/Android-op/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 '/Android-op/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 '/Android-op/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 '/Android-op/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 '/Android-op/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 '/Android-op/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">
====
Traceback (most recent call last):
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1306,
in <module>
main()
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1302,
in main
generator.generate_code()
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 980,
in generate_code
self._parse_headers()
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1017,
in _parse_headers
self._deep_iterate(tu.cursor)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1041,
in _deep_iterate
self._deep_iterate(node, depth + 1)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1041,
in _deep_iterate
self._deep_iterate(node, depth + 1)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1021,
in _deep_iterate
if cursor.kind == cinde
10c2f
x.CursorKind.CLASS_DECL:
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py", line 1248,
in kind
return CursorKind.from_id(self._kind_id)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py", line 624,
in from_id
raise ValueError,'Unknown cursor kind'
ValueError: Unknown cursor kind
---------------------------------
Generating lua bindings fails.
---------------------------------
解决办法:在lua绑定的.h头文件中,导入了未绑定lua的类头,调整一下就可以成功生成绑定
如:
将ODSocket绑定到lua时也出现楼主说到的问题(raise
ValueError,'Unknown cursor kind),原因在于部分头文件无法生成,ODSocket.h中:
#ifdef WIN32
#include <winsock.h>
typedef int socklen_t;
#else
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <netdb.h>
#include <fcntl.h>
#include "errno.h"
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <arpa/inet.h>
typedef int SOCKET;
//#pragma region define win32 const variable in linux
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
//#pragma endregion
#endif
上面这段代码导致无法生成lua绑定类,我这的解决方式是将部分非必须的include头文件移到cpp中即可,ODSocket.h改为:
#ifdef WIN32
#include <winsock.h>
typedef int socklen_t;
#else
typedef int SOCKET;
//#pragma region define win32 const variable in linux
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
//#pragma endregion
#endif
ODSocket.cpp中引入相关头文件:
#ifdef WIN32
#include <winsock.h>
typedef int socklen_t;
#else
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <netdb.h>
#include <fcntl.h>
#include "errno.h"
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <arpa/inet.h>
#endif
txxxxmac:tolua txxxx$ ./genbindings_mysocket.py
PYTHON_BIN not defined, use current python.
generating userconf.ini...
Generating bindings for mysocket...
Using userconfig
[('androidndkdir', '/Android-op/android-ndk-r9b'), ('clangllvmdir', '/Android-op/android-ndk-r9b/toolchains/llvm-3.3/prebuilt/darwin-x86_64'),
('cocosdir', '/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x'), ('cxxgeneratordir', '/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator'), ('extra_flags', '')]
.... Generating bindings for target lua
.... .... Processing section mysocket
====
Errors in parsing headers:
1. <severity = Warning,
location = <SourceLocation file '/Android-op/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 '/Android-op/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 '/Android-op/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 '/Android-op/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 '/Android-op/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 '/Android-op/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">
====
Traceback (most recent call last):
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1306,
in <module>
main()
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1302,
in main
generator.generate_code()
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 980,
in generate_code
self._parse_headers()
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1017,
in _parse_headers
self._deep_iterate(tu.cursor)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1041,
in _deep_iterate
self._deep_iterate(node, depth + 1)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1041,
in _deep_iterate
self._deep_iterate(node, depth + 1)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/generator.py", line 1021,
in _deep_iterate
if cursor.kind == cinde
10c2f
x.CursorKind.CLASS_DECL:
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py", line 1248,
in kind
return CursorKind.from_id(self._kind_id)
File "/Users/txxxx/Desktop/rpg/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py", line 624,
in from_id
raise ValueError,'Unknown cursor kind'
ValueError: Unknown cursor kind
---------------------------------
Generating lua bindings fails.
---------------------------------
解决办法:在lua绑定的.h头文件中,导入了未绑定lua的类头,调整一下就可以成功生成绑定
如:
将ODSocket绑定到lua时也出现楼主说到的问题(raise
ValueError,'Unknown cursor kind),原因在于部分头文件无法生成,ODSocket.h中:
#ifdef WIN32
#include <winsock.h>
typedef int socklen_t;
#else
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <netdb.h>
#include <fcntl.h>
#include "errno.h"
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <arpa/inet.h>
typedef int SOCKET;
//#pragma region define win32 const variable in linux
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
//#pragma endregion
#endif
上面这段代码导致无法生成lua绑定类,我这的解决方式是将部分非必须的include头文件移到cpp中即可,ODSocket.h改为:
#ifdef WIN32
#include <winsock.h>
typedef int socklen_t;
#else
typedef int SOCKET;
//#pragma region define win32 const variable in linux
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
//#pragma endregion
#endif
ODSocket.cpp中引入相关头文件:
#ifdef WIN32
#include <winsock.h>
typedef int socklen_t;
#else
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <netdb.h>
#include <fcntl.h>
#include "errno.h"
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <arpa/inet.h>
#endif
相关文章推荐
- cocos2dx骨骼动画Armature源码剖析(三)
- cocos2dx 交叉编译 iconv库 protobuf库
- Cocos2d-x中PageView使用中的问题
- cmake clion 构建cocos2dx 应用程序并编译ios mac android
- 【笔记】试玩 cocos2d-x-3.0beta on android
- cocos2dx出现 Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
- cocos2dx 粒子系统CCParticleSystem
- cocos2dx 中各种运动和速度
- Cocos2dx 中的CCCallFunc,CCCallFuncN,CCCallFuncND,CCCallFuncO比较
- CCScale9Sprite的用法
- cocos2dx入门
- Cocos2D-x中关于do{}while(0)和CC_BREAK_IF的用法
- 【cocos2d-x3.2游戏开发】 lua 类, 继承, 面向对象
- [cocos2dx]随机数的使用
- 滴答UI编辑器初实战,实现cocos2dx的支持
- 成都公司诚聘cocos2dx(有wp经验)
- cocos2dx中js绑定的回调
- 第一次写博客,多多关照,
- xcode创建cocos2dx模版 关于couldn't add 'com.apple.XcodeGenerated' tag错误