• Cocos2d-x JSB 自己主动绑定bindings


    Javascript Binding (简称JSB) 自己主动绑定教程。

    Cocos2d-x JSB 自己主动绑定bindings-generator (以下简称B-G) 使用心得


    假设想弄清深入原理,推荐阅读  Cocos2D-x从C++到JS的进阶之路:http://blog.51cto.com/zt/560 

    B-G 是什么?
      当使用JSB的时候,假设你想要使用的C++的类或者方法没有在已有JSB中被绑定,这时候。就能够使用B-G。

    它能够生成相相应的C++的绑定文件和相相应的JS接口,届时,你仅仅须要调用生成的相相应的JS接口,它将自己主动转换成原来的C++的类。相当于直接调用原来的C++方法或者类。

    B-G生成主要流程:
    准备好必要的工具 -> 准备好你要绑定的C++的文件 -> 写生成文件的.ini配置文件和.sh 脚本程序 -> 执行 .sh 脚本文件 -> 生成绑定文件 -> 測试绑定文件直至能够正常使用

    必要的工具:
    cocos2d-x引擎http://cocos2d-x.org/projects/cocos2d-x/wiki/Download
    python 2.7http://www.python.org/download/   (眼下引擎里面的bindings-generator仅仅支持python2.7版本号)
    py-ymal: http://pyyaml.org/wiki/PyYAML  (这是python的一个第三方包。下载页有不同系统的安装方式,能够參考。

    generator.py会调用到这个包。


    cheetahhttp://www.cheetahtemplate.org/ (这也是python的一个第三方包,一个模板。generator.py会调用到这个包。安装方式跟py-ymal同样。)
    libclang:http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-apple-darwin11.tar.gz (生成的时候须要用到的lib,注意master分支也就是2.2.2这个版本号的引擎用3.1的,develop分支也就是3.0版本号的引擎用3.3的)
    Android NDK:http://dl.google.com/android/ndk/android-ndk-r8c-darwin-x86.tar.bz2 (測试的时候使用的v2.2.2用的r8c, 如今的3.0beta版须要用r9b)

    .ini文件
    參考样例:cocos2dx引擎根文件夹/tools/bindings-generator/test/test.ini 
    cocos2dx引擎根文件夹/tools/tojs/cocos2dx_extension.ini
    cocos2dx引擎根文件夹/tools/tojs/cocos2dx.ini


    .ini中部分參数的使用方法:
    name: 单纯仅仅是名称。
    prefix: 最后生成的文件都会以这个命名前缀,如 prefix.cpp, prefix.hpp, prefix_api.js 
    classes: 你的所需转换的类的名称。必须是所导入的头文件里全部的类,这里能够使用正則表達式来增加多个类,參考cocox2dx.ini。


    extra_arguments: 一些接口所需的系统參数。如clang包。android ndk包的引入所需的系统參数,写法能够參照以上三个.ini。 
    headers: 你所须要绑定的头文件路径。

     
    target_namespace:命名空间。最后生成的JS文件的类。会以这个命名空间开头。比如你的类为sqlite。命名空间为cocos2dx。那么最后生成的就是cocos2dx.sqlite。

     
    rename_functions:能够将你要绑定的方法的名称更改成你所要的。能够更改多个。用逗号隔开,写法參照 SqliteCpp::[sqlite3_execCpp=sqlite3_exec]。这个就是将SqliteCpp中的sqlite3_ execCpp方法重命名为sqlite3_exec方法。
    rename_classes :同上。重命名类。
    skip :跳过你所不须要绑定的方法和类,于是就不生成。

    .sh文件:主要调用程序。用来读取.ini配置文件和写部分參数。
    參考样例:cocos2dx引擎根文件夹/tools/tojs/genbindings.sh 
                        cocos2dx引擎根文件夹/tools/bindings-generator/test/test.sh

    以下这句话便设定了通过调用generator.py来调用你的配置文件。并在你所设定的敌方生成你须要的绑定文件。

     set -x LD_LIBRARY_PATH=${CLANG_ROOT}/lib $PYTHON_BIN ${CXX_GENERATOR_ROOT}/generator.py ${TO_JS_ROOT}/sqlite.ini -s sqlite -o ${TO_JS_ROOT}/sqliteBinding
    写好.ini和.sh后,在cmd执行 sudo 你的.sh路径 。便能够在你配置的地方找到你生成的文件。

  • 相关阅读:
    洛谷 P3178 [HAOI2015]树上操作
    『学习笔记』线段树合并(洛谷P4556)
    『学习笔记』树链剖分(洛谷P3384)
    洛谷 P6218 [USACO06NOV] Round Numbers S
    洛谷 P4999 烦人的数学作业
    洛谷 P4317 花神的数论题
    洛谷P2602 [ZJOI2010]数字计数
    WAMPServer多站点配置
    自定义网站根目录
    网络编程——服务器与多客户端通信
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8608989.html
Copyright © 2020-2023  润新知