quick3.3使用tolua工具导出C++到lua所遇问题记录

c++导出lua(参照cocos2d-x/tools/tolua/README.mdown或参照http://shahdza.blog.51cto.com/2410787/1568051),其间遇到的问题记录
1.PYTHON_BIN not defined(注:最后发现只要安装python时直接安装在磁盘根目录下(如,C:\python27)就不会有此问题)
解决:在环境变量增加PYTHON_BIN变量名,内容为python安装目录/python,(注:这里不是目录,而是python.exe的全路径)
2.libclangError:[Error 193] %1不是有效的Win32.To provide a path to libclang us
解决:Python、pyyaml、pyCheetah都用32位版本
3.location = <SourceLocation file 'D:\\android\\android-ndk-r10c/platforms/android-14/arch-arm/usr/include\\sys/types.h', line 33, column 10>,details = "'stddef.h' file not found">
解决:ndk换成9系列的,上面问题是由于ndk10系列造成的

4.'dos2unix'不是内部或外部命令,也不是可运行的程序或批处理文件。(注:最后发现其实这个问题不解决也不影响正常导出与使用功能)
解决:到quick安装目录下\tools\bindings-generator\tools\win32找到dos2unix.exe并复制它,然后粘贴到当前项目frameworks\cocos2d-x\tools\bindings-generator\tools\win32下即可
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
tolua++是一个将C/C++代码导出Lua工具,它可以将C/C++代码转换成Lua解释器调用的API,并在运行时将C/C++代码封装成Lua可用的函数。 以下是一个简单的示例,演示如何使用tolua++将C++代码转换成Lua可调用的库: ```c++ // example.h class Example { public: Example(int value); int getValue(); private: int m_value; }; ``` ```c++ // example.cpp #include "example.h" Example::Example(int value) : m_value(value) { } int Example::getValue() { return m_value; } ``` 首先,我们需要使用tolua++生成绑定代码。假设我们的绑定代码文件名为examplebindings.pkg,其内容如下: ``` // examplebindings.pkg $#include "example.h" module example { class Example { public: Example(int value); int getValue(); }; } ``` 然后,我们可以使用tolua++命令行工具将绑定代码生成为C++头文件和Lua文件: ``` $ tolua++ -o examplebindings.h -H examplebindings.hpp examplebindings.pkg ``` 生成的examplebindings.h和examplebindings.hpp文件包含了C++的绑定代码,我们需要将其与原始的C++代码一起编译成库文件。 接下来,我们可以编写Lua脚本来调用C++代码: ```lua -- example.lua require "examplebindings" local example = example.Example(42) print(example:getValue()) -- 输出42 ``` 在上面的示例中,我们首先加载了examplebindings模块,然后创建了一个Example对象,并调用了其getValue()方法。注意,我们使用了冒号语法来调用方法,这是Lua中常用的一种语法。 最后,我们可以使用Lua解释器来运行example.lua脚本,以调用C++代码并输出结果。 以上就是使用tolua++将C++代码转换成Lua可调用的库的基本流程。需要注意的是,tolua++只支持部分C++特性,例如模板和多重继承等特性可能无法正确导出。在实际使用中,我们需要根据具体情况进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值